Skip to main content

Support for bulk scoring and grading

Project description

PyPI Travis Codecov Documentation Supported Python versions License

Support for bulk scoring and grading. This adds models and an API for reading and modifying scores and grades in bulk.

Overview

The README.rst file should then provide an overview of the code in this repository, including the main components and useful entry points for starting to understand the code in more detail. edx-bulk-grades is a library that runs under lms. It uses the configuration settings defined in lms as well. In order to use, the library must be installed into edx-platform.

Using with Docker Devstack

Prerequisite: Have your Open edX https://github.com/edx/devstack properly installed. Note: When you see “from inside the lms” below, it means that you’ve run make lms-shell from your devstack directory and are on a command prompt inside the LMS container.

  1. Clone this repo into ../src/ directory (relative to your “devstack” repo location). This will mount the directory
    in a way that is accessible to the lms container.
  2. From inside the lms, uninstall bulk-grades and reinstall your local copy. You can just copy the following line:

    pip uninstall edx-bulk-grades -y; pip install -e /edx/src/edx-bulk-grades

    Or, you can run the following make command:

    make install-local
  3. Now, get your bulk-grades development environment set up:

    cd /edx/src/edx-bulk-grades
    virtualenv edx-bulk-grades-env
    source edx-bulk-grades-env/bin/activate
    make requirements

Making Code Changes

  1. After checking out a new branch, increment __version__ by the smallest possible value located in bulk_grades/__init__.py.
    This will allow edx-platform to pick up the new version.
  2. Once a branch has been merged, it is necessary to make a release on github, specifying the new version from
    __version__ set above.
  3. In order for platform to use the newest version of bulk-grades, it is necessary to run the:

    $ make upgrade

from docker shell of edx-platform. This will increment the version of edx-bulk-grades to the correct one.

  1. Once the code from step 3 is merged, this will trigger deployment of the correct versions of edx platform and bulk-grades.

Unit Testing

mock_apps folder: Since bulk_grades depends on platform during actual runtime, for unit tests, we need to mock various endpoints and calls. To this end, they are mocked in the mock_apps folder.

Since edx-bulk grades runs under platform, it is necessary to connect to platform docker:

$ make lms-shell

followed by:

$ cd /edx/src/edx-bulk-grades
make test

This will run the unit tests and code coverage numbers

License

The code in this repository is licensed under the AGPL 3.0 unless otherwise noted.

Please see LICENSE.txt for details.

How To Contribute

Contributions are very welcome.

Please read How To Contribute for details.

Even though they were written with edx-platform in mind, the guidelines should be followed for Open edX code in general.

The pull request description template should be automatically applied if you are creating a pull request from GitHub. Otherwise you can find it at PULL_REQUEST_TEMPLATE.md.

The issue report template should be automatically applied if you are creating an issue on GitHub as well. Otherwise you can find it at ISSUE_TEMPLATE.md.

Reporting Security Issues

Please do not report security issues in public. Please email security@edx.org.

Getting Help

Have a question about this repository, or about Open edX in general? Please refer to this list of resources if you need any assistance.

Change Log

Unreleased

[0.8.12] - 2012-06-21 * Fixed import csv to not working with multiple sections per-user override

[0.8.11] - 2021-07-09

  • Fixed a bug causing bulk management import history to break when import had pre-filtered columns

[0.8.10] - 2021-05-14

  • Updated dependencies

[0.8.9] - 2021-04-09

  • Updated dependencies

[0.8.8] - 2021-04-08

  • Added excludedCourseRoles to grade export endpoint

[0.8.7] - 2021-03-15

  • Upgrade super-csv to 2.0.1

  • Only show modified subsections in the Bulk Grade Override Report.

[0.8.6] - 2021-01-22

  • Added a management command install-local that will install your local code into devstack LMS

  • GradeCSVProcessor export now includes an additional column per subsection, grade-{subsection_id}. This column is equal to the original_grade column for that subsection if there is no override, or equal to previous_override if there is an override.

[0.8.5] - 2020-12-24

  • Upgrading celery to 5.0

  • Removed python 3.5 classifier as its support is dropped earlier

[0.8.4] - 2020-12-24

  • Adding celery5.0 testing using tox.

[0.8.3] - 2020-11-19

  • Updated the build status badge in README.rst to point to travis-ci.com instead of travis-ci.org

[0.8.2] - 2020-11-02

  • Added active_only field to GradeCSVProcessor

  • For Grade CSV bulk download, only include active enrollments

[0.8.0] - 2020-09-03

  • Upgraded to celery 4.2.2

  • Removed django-celery

[0.6.6] - 2019-12-13

  • Added Support for Django22.

[0.6.5] - 2019-12-05

  • In get_scores(), account for case where no ScoreOverrider exists.

[0.6.4] - 2019-09-24

  • GradeCSVProcessor.save() should return something.

[0.6.3] - 2019-09-24

  • Upgrade super-csv to 0.9.4, make sure to pass user_id to GradeCSVProcessor.__init__().

[0.6.2] - 2019-09-23

  • Upgrade super-csv to 0.9.3

[0.6.1] - 2019-09-17

  • Call grades api with comment when doing bulk upload

  • Add user_id field to GradeCSVProcessor to fix bulk_upload history entries

[0.6.0] - 2019-09-10

  • Prevent Grade and Intervention CSV processors from producing duplicate columns.

[0.5.10] - 2019-09-06

  • Prevent user from setting negative grades

[0.5.9] - 2019-08-28

  • Make intervention report display either grade override if exists or original grade.

[0.5.8] - 2019-08-26

  • Make intervention masters track nly. Some clan up.

[0.5.3] - 2019-08-16

  • Add support for filters to Interventions CSV report endpoint, mirroring bulk management filters

[0.5.2] - 2019-08-15

  • Bring datasource for grade information inline with what the rest of gradebook uses

[0.4.4] - 2019-08-13

Add ability to filter by course grade, provided as a percentage to the endpoint.

[0.4.3] - 2019-08-12

Add ability to filter by subsection grade, provided as a percentage to the endpoint

[0.4.1] - 2019-08-01

Added ability to filter by subsection & assignment grading type for bulk management CSV downloads.

[0.1.4] - 2019-07-02

Added an endpoint for this history of bulk management operations on grade overrides.

[0.1.0] - 2019-05-24

Added

  • First release on PyPI.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edx-bulk-grades-0.8.12.tar.gz (33.8 kB view details)

Uploaded Source

Built Distribution

edx_bulk_grades-0.8.12-py2.py3-none-any.whl (31.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file edx-bulk-grades-0.8.12.tar.gz.

File metadata

  • Download URL: edx-bulk-grades-0.8.12.tar.gz
  • Upload date:
  • Size: 33.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.7

File hashes

Hashes for edx-bulk-grades-0.8.12.tar.gz
Algorithm Hash digest
SHA256 381188c612f9654e7ae46690e8f78546aa5caf96a7affdc93b40646229f5ad6f
MD5 200c34006991382d6cf6dc82458abe4d
BLAKE2b-256 43e77bc1d30876f1a688551984046673b9855f84754163413838f5a43f85fd64

See more details on using hashes here.

File details

Details for the file edx_bulk_grades-0.8.12-py2.py3-none-any.whl.

File metadata

  • Download URL: edx_bulk_grades-0.8.12-py2.py3-none-any.whl
  • Upload date:
  • Size: 31.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.8.7

File hashes

Hashes for edx_bulk_grades-0.8.12-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 4fd8704ce9ab31f219879bd88efb2a5610affa8aa3e39b3fb4c96b7feb10fedd
MD5 813809e8f06f841850e7d13dc33fc4e7
BLAKE2b-256 a750c60344310450caddeb108544cfaf49861dd338871c7739f36fbb6563b866

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page