Releases: openedx/edx-organizations
Dropped support for python3.5
Package Updates:
- Dropped support for python3.5
- Added tests for Django3.0 & Django3.1.
Dropped support for python3.5
Package Updates:
- Dropped support for python3.5
- Added tests for Django3.0 & Django3.1.
Allow organizations and linkages to be bulk-added as inactive
Add a new optional flag activate
to both:
api.bulk_add_organizations
andapi.bulk_add_organization_courses
,
defaulting toTrue
, which is the current behavior.
With activate=False
, those functions will set the active
flag on newly created objects to False
. Furthermore, they will not re-activate any existing objects. The purpose of this is to allow us to backfill the Organization and OrganizationCourse tables on production instances without introducing any new active data. We intend to expose this flag as a command-line flag in the edx-platform bulk_add_orgs_and_org_courses
command.
This release also upgrades testing requirements and makes some minor code changes.
No breaking changes.
Return bulk-add results instead of logging them
api.bulk_add_organizations
and api.bulk_add_organization_courses
previously logged the organizations and organization-course linkages they were about to create/reactivate.
This was somewhat helpful, but parsing the log output by hand is more time-consuming and error prone than simply returning the data and allowing the caller decide how to process it
Part of TNL-7774.
Stop checking for FEATURES['ORGANIZATIONS_APP'] setting
We originally checked the deprecated FEATURES['ORGANIZATIONS_APP']
setting as an alternative to the new ORGANIZATIONS_AUTOCREATE
settting, but since we're going to give ORGANIZATIONS_AUTOCREATE
a default value in edx-platform anyway, the fallback check will never even be reached. Having the fallback check in the edx-organizations codebase is more misleading than anything else.
This is effectively a no-op change.
Related to TNL-7646.
Fixes to bulk-creation queries
Fixes database queries in api.bulk_add_organizations
and api.bulk_add_organization_courses
.
Part of TNL-7646.
Add dry-run option to bulk_add functions
api.bulk_add_organizations
and api.bulk_add_organization_courses
each take an new optional boolean argument: dry_run
.
When dry_run==True
, the bulk-add functions will log what organizations and organization-course linkages would be created or reactivated,
but they will not apply the changes to the database.
Part of TNL-7646.
Add API functions for bulk-adding organizations & organization-courses
Two new functions were added to organizations.api
:
bulk_add_organizations(organization_data_items)
bulk_add_organization_courses(organization_course_pairs)
Both use Django's bulk_create
and bulk_update
functions to allow insertion of many rows in a constant number of queries. They will aid in the creation of the upcoming edx-platform backfill_orgs_and_org_courses
management command.
The release also resolves some trivial RemovedInDjango40Warning
s.
No breaking changes since 6.0.0.
Part of TNL-7645.
Make organization short_names unique
The short_name
field on the Organization
model has been made unique.
This makes the model reflective of a reality that already exists on edX.org, and realizes an informal assumption that we make throughout edx-platform code.
For Open edX instances that enable FEATURES['ORGANIZATIONS_APP']
, running this migration will fail if you have rows in the LMS/Studio organizations_organization
table with identical values of short_name
(noting that "identical" is case-insensitive for MySQL). If your instance has organizations with identical short_names
, the easiest fix is to delete conflicting rows via Django admin (making sure that they have no inbound references from other model instances), and the re-attempting to run the migration. You probably would have wanted to do this anyway.
Add API functions to support phase-in of database-backed organizations
See ADR #1 for context.
In this PR, we add four new API functions to support the phase-in of database-backed organizations:
is_autocreation_enabled
ensure_organization
get_course_organization
get_course_organization_id
There are no breaking changes in this release. A follow-up release (6.0.0) with breaking changes will be necessary.