edx-sga Staff Graded Assignment XBlock

raw JSON →
0.28.0 verified Fri May 01 auth: no python

An XBlock for Open edX that provides a staff-graded assignment component. Version 0.28.0 is the latest release. The library is maintained as part of MIT Open Learning's Open edX tools, with an active development cadence.

pip install edx-sga
error ModuleNotFoundError: No module named 'edx_sga'
cause Incorrect import path; the package installs as 'sga'.
fix
Use from sga import StaffGradedAssignmentXBlock instead of from edx_sga import ....
error ImportError: cannot import name 'StaffGradedAssignmentXBlock' from 'sga'
cause The XBlock class might have been renamed in older versions, or the import is wrong.
fix
Ensure you have installed edx-sga (pip install edx-sga) and use from sga import StaffGradedAssignmentXBlock.
error AttributeError: 'StaffGradedAssignmentXBlock' object has no attribute 'max_score'
cause You may be calling a method that exists only in a certain version or relying on deprecated attributes.
fix
Check the documentation for the version you are using. Use get_max_score() if available.
deprecated The XBlock is deprecated in favor of the built-in Open edX staff-graded assignment (since Open edX Juniper).
fix Migrate to the built-in Open edX SGA if running Open edX Juniper or later.
gotcha The import path is `from sga import StaffGradedAssignmentXBlock`, not `from edx_sga` or `from edx_sga import ...`.
fix Use `from sga import StaffGradedAssignmentXBlock`.
breaking Python 2 support was dropped in version 0.22.0.
fix Use Python 3.5+ (recommended Python 3.8+ for latest).

Initialize a StaffGradedAssignmentXBlock instance (for development/testing purposes).

from sga import StaffGradedAssignmentXBlock

# Instantiate the XBlock (requires runtime, typically used within Open edX)
# Example for testing (not for production):
from xblock.field_data import DictFieldData
from xblock.runtime import KvsFieldData, DictKeyValueStore

field_data = DictFieldData({})
kvs = KvsFieldData(DictKeyValueStore())
runtime = type('MockRuntime', (), {
    'field_data': field_data,
    'get_field_data': lambda self: field_data,
    'course_id': 'course-v1:edX+DemoX+Demo_Course'
})()
block = StaffGradedAssignmentXBlock(runtime, scope_ids=0)
print('SGA XBlock initialized successfully')