Modificar el reporte de calificaciones de Open Edx

Uno de mis cliente no le agrada como OpenEdx como genera los grade book en formato csv, debido a que este reporte no presenta las calificaciones con dos décimas. Por lo cual me dia a la tarea de modificar el reporte.

Para esto debemos de editar el archivo /edx/app/edxapp/edx-platform/lms/djangoapps/instructor_task/tasks_helper/grades.py y buscar la función _user_grade_results.

def _user_grade_results(self, course_grade, context):
        """
        Returns a list of grade results for the given course_grade corresponding
        to the headers for this report.
        """
        grade_results = []
        for assignment_type, assignment_info in context.graded_assignments.iteritems():
            for subsection_location in assignment_info['subsection_headers']:
                try:
                    subsection_grade = course_grade.graded_subsections_by_format[assignment_type][subsection_location]
                except KeyError:
                    grade_result = u'Not Available'
                else:
                    if subsection_grade.graded_total.first_attempted is not None:
                        grade_result = subsection_grade.graded_total.earned / subsection_grade.graded_total.possible
                    else:
                        grade_result = u'Not Attempted'
                grade_results.append([grade_result * 100])
            if assignment_info['separate_subsection_avg_headers']:
                assignment_average = course_grade.grader_result['grade_breakdown'].get(assignment_type, {}).get(
                    'percent'
                )
                grade_results.append([100*assignment_average])
        return [course_grade.percent * 100] + _flatten(grade_results)

Modificamos dos líneas solamente, la primera es grade_results.append([grade_result]), la cual modifica las calificaciones de cada actividad. La segunda línea a editar es grade_results.append([100*assignment_average]) return [course_grade.percent] + _flatten(grade_results), modifica la calificacion final del curso.

Por ultimo compilamos el archivo grades.pycon el comando

python -m compileall grades.py

Y reiniciamos la plataforma con /edx/bin/supervisorctl restart all.

Espero que les sea de utilidad.

NOTA: Recuerda que si editar el archivo como root, debes de cambiar el propietario del archivo compilado por edxapp.

Ernesto Sánchez Benitez

Ernesto Sánchez Benitez