- Display enterprise course enrollments separate from non-enterprise course enrollments in the "Enterprise Customer Learner" Django admin form
- Custom get function in EnterpriseCustomerUserManager to enable multiple user enterprises.
- Remove success url validation for select enterprise page.
- Added Source to Enterprise API Enrollments.
- Add manual enrollment audit creation for enrollments created in Manage Learners form.
- Sorted results of enterprise-learner API by active flag in descending order so active enterprises are on the top
- Better handling when Integrated Channels return unexpected results
- Added in models to track enterprise enrollment source and updated the Enterprise Course Enrollments and PendingEnrollments to track that source.
- Address defect ENT-2463. Add protection within EnterpriseCustomerUser model in enroll method during coure enrollments.
- Added missing migration for EnterpriseCustomerUser
- Add Enterprise selection page to allow a learner to select one of linked enterprises
- Add manual order creation to enterprise manual enrollment admin form
- Update 'EnterpriseCustomerUser' model. Add 'create_order_for_enrollment'. Called during 'enroll'. Will create an ecommerce order for pending course enrollments.
- Add management command to populate sample enterprise data in the LMS within devstack
- Add method to Ecommerce API client to call the manual enrollment order API
- Updated image url field in content metadata export for cornerstone and degreed
- Adding logging to search/all/ endpoint in discovery api client
- Added certificate and grades api calls for transmitting learner export to integrated channels
- Add query_param to remove expired course runs from /enterprise/api/v1/enterprise_catalogs/UUID/ endpoint
- Adding migration file to remove EnterpriseCustomerEntitlement from table schema
- Added preview button for EnterpriseCustomerCatalogs in EnterpriseCustomer admin page
- Add message box to code management page and admin portal
- Updating create_enterprise_course_enrollment task to accept object ids instead of python objects to play nicely with async.
- Also converts course_id to str before handing it to task to play nicely with async.
- Commenting out code while troubleshooting signal issue in the LMS
- Removing EnterpriseCustomerEntitlement code
- Adding post-save receiver to spin off EnterpriseCourseEnrollment creation tasks on CourseEnrollment creation signals
- Resolved issue with content_metadata image_url.
- Added support to transmit single learner data.
- Added ability set supported languages in Cornerstone Global Config.
- Updating enterprise_learner_portal LMS API calls to refer to new function locations in the LMS.
- Added new endpoint basic_list to EnterpriseEnrollment.
- Add enable_portal_reoprting_config_screen field to EnterpriseCustomer model.
- Add enable_portal_reporting_config_screen to EnterpriseCustomerSerializer.
- Added ability to set password on reporting configuration.
- Upgrading requirements.
- Add learner portal configuration fields to EnterpriseCustomer model.
- Implement "move to completed" functionality for Enterprise Enrollments.
- Add new field 'marked_done' to EnterpriseCourseEnrollment.
- Improved enterprise enrollment workflow logging.
- Updated learner portal enrollments endpoint to require an enterprise id.
- Corrected missing db migration data for the EnterpriseCustomerReportingConfigurations model
- Added API endpoints for EnterpriseCustomerReportingConfigurations and updated permissions to use Feature role based auth.
- Added XAPILearnerDataTransmissionAudit model for xapi integrated channel.
- Preventing another error in enterprise_learner_portal serializer when certificate info is None.
- Adding type check to enterprise_learner_portal serializer.
- Adding enterprise_learner_portal to quality check commands.
- Fix for include course run dates and pacing type in the course description sent to SAP. Prior release (1.9.2) did not include bumping the version in __init__.py.
- Include course run dates and pacing type in the course description sent to SAP.
- Added enterprise_learner_portal to MANIFEST.in file to recursively grab files app on build
- Minor fixes to typos and an image link
- Adding enterprise_learner_portal app to support data needs of frontend enterprise learner portal app
- Remove tincan from src directory
- For CornerstoneCourseListAPI handled corner cases for default values.
- Added history models for PendingEnrollment and PendingEnterpriseCustomerUser.
- Sending default values for required fields in Cornerstone Course List API
- Add/Update logs for GrantDataSharingPermissions and DataSharingConsentView views to improve monitoring.
- Change coupon code request email from address.
- Introduce enterprise catalog queries.
- Upgrade python requirements.
- Log success of coupon code request email send.
- Show linked enterprise customer on Enterprise Customer Learners and System wide Enterprise User Role Assignments admin screen
- Replace edx-rbac jwt utils with edx-drf-extensions jwt utils
- Change the way we declare dependencies so we can avoid breaking make upgrade in edx-platform.
- Added ability to send user's progress to cornerstone
- Reverted page size of SAPSF inactive user results from 1000 to 500
- Pin certain constraints from edx-platform so that edx-enterprise will install properly there.
- Upgrade python requirements
- Revert changes made in 1.6.20
- Added additional logging for enterprise api
- Updated catalog preview URL on enterprise customer catalog admin list display
- Added ability to skip keys if their value is None for content exporter
- Changed page size of SAPSF inactive user results from 500 to 1000
- Fixed Server Error on enterprise course enroll url caused by week_to_complete None value
- Capture user attributes sent by cornerstone
- Fix error where the search/all/ endpoint in discovery is called with course_key=None
- Pass language code instead of language name in languages field of course-list API for cornerstone
- Improved logging of unlink_inactive_sap_learners command and matching social auth user by uid field
- Updated discovery clients to always call the enterprise customer site if available
- Update the format of course_duration in xAPI payload data.
- Remove old catalog model field.
- Install django-filter so this app is compatible with newer DRF packages.
- Fix error in enrollment flow caused by the way course keys were parsed.
- added enable_audit_data_reporting in EnterpriseCustomerSerializer
- Use OAuth2AuthenticationAllowInactiveUser as oauth2 authentication instead of BearerAuthentication for course-list API.
- Use edx-rbac functions and pin edx-rbac so that we can continue to release edx-enterprise.
- Upgrade packages to get latest edx-drf-extensions version.
- Remove RBAC waffle switch
- Remove old style catalogs
- Fallback to request.auth if JWT cookies are not found.
- Added new integrated channel cornerstone with course-list API.
- Reverting changes from 1.5.6.
- Bumping version to 1.5.8. 1.5.7 was tagged and released without actually bumping the version
- Updating get_paginated_content ent catalog method to use count value given from discovery service
- Fix the way a course identifier is found for a given course run.
- Clean up rbac authorization related waffle switches and logic
- Updating test packages to be inline with edx-platform. Specifically Bleach >2.1.3
- Add total number of weeks to view from data consent screen
- Remove usages of get_decoded_jwt_from_request from rbac in favor of get_decoded_jwt from edx-drf-extensions
- Updating consent granted view to redirect to dashboard if consent is not required
- Add sync_learner_profile_data flag to data returned by enterprise-learner endpoint
- Add enterprise customer column in the list_display admin interface for SystemWideEnterpriseUserRoleAssignment
- Update SystemWideEnterpriseUserRoleAssignment admin interface search to support search by enterprise customer
- Upgrade edx-rbac version
- Reduce course mode match exception log level
- Fix invalid object attribute references in exception message
- Stop masking discovery call failures from the client for enterprise catalog endpoint calls.
- Revise course mode match exception message in CourseEnrollmentView.
- Revise course load exception message in CourseEnrollmentView.
- Added availability key to default content filter for ECC.
- Update assign_enterprise_user_roles management command to also assign catalog and enrollment api admin roles.
- Update RouterView if user is already enrolled in course run of a course then user will land on that course_run.
- Add new rbac permission checks to enterprise api endpoints.
- Update context for enterprise-openedx-operator role.
- Provide ability to add ECE even if course is closed from manage learners admin interface.
- Update role metadata for edx-openedx-operator role.
- Update assign_enterprise_user_roles management command to also assign enterprise operator role.
- Add data migration for adding edx enterprise operator role.
- Introduce rbac models for feature specific roles within edx-enterprise.
- Assign an enterprise learner role to new EnterpriseCustomerUser.
- Management command to assign enterprise roles to users.
- Fixed error in enrollment flow when audit track is selected and no DSC required.
- Adding django admin for SystemWideEnterpriseUserRoleAssignments.
- Optimizations around unlinking of SAP Success factor inactive users
- Introducing Enterprise System Wide Roles and edx-rbac.
- Updating enterprise views with new logging
- Updating enterprise views to render new error page in a number of circumstances
- Allow admins with enterprise permissions to edit Data Sharing Consent Records
- Include Enterprise Catalog UUID in Enterprise Customer django admin inline.
- Upgrade requirements, and add code-annotations.
- Add PII annotations to all apps in this repo.
- Enable PII checking during CI.
- Revert 1.2.4 to restore DSC functionality.
- Replace error level log with info level log when enterprise user is not enrolled in course yet and the transmit_learner_data command is run
- Updating launch_points data in SapSuccessFactorsContentMetadataExporter so SuccessFactors can be mobile ready
- Remove HandleConsentEnrollment view and replaced with a function inside GrantDataSharingPermissions view. Removed GET side effect
- Add management command "unlink_inactive_sap_learners" to unlink inactive SAP learners from the related enterprises
- Update styling for future courses start date visibility
- Handle /search/all/ endpoint large catalog queries to discovery through HTTP POST
- Updating the course grade api url called in lms api
- Upgrade django-simple-history required version
- Add option on EnterpriseCustomer for displaying code management in portal
- Update EnterpriseCustomer model to introduce customer type field
- Use LMS-defined segment track() method
- Updating EnterpriseCustomerReportingConfiguration model. ManyToMany relationship with EnterpriseCustomerCatalog
- Updating EnterpriseCustomerReportingConfigurationAdminForm validation
- Updating EnterpriseCustomerReportingConfigurationSerializer
- Added username and user email in EnterpriseCustomerUserAdmin list display.
- Added search by username and user email in EnterpriseCustomerUserAdmin.
- Added enterprise api for requesting additional coupon codes.
- Make HTTP POST request to get catalog results from discovery.
- Fix translations for enterprise pages.
- Updated EnterpriseCustomerReportingConfiguration model with PGP key
- Made autocohorting API availability based on a configuration option.
- Upgrade edx-drf-extensions with refactored imports.
- Remove Hawthorn testing for upcoming backward incompatible change.
- SuccessFactors: Submit batch/chunk of OCN items to tenants until error status
- Added ability to query enterprises by slug on the with_access_to endpoint
- Added ability to assign cohort upon enrollment.
- Added ability to unenroll in enrollment API.
- Added Country field to the EnterpriseCustomer model.
- Fixed 500 error on enterprise customer admin screen.
- Remove the SailThru flags for enterprise learner when un-linking it from enterprise.
- Changed permission logic and added filtering options for the enterprise with_access_to endpoint.
- Added preview field that takes user to Discovery with elastic search results for the catalog
- Added management command to send course enrollment and course completion info for enterprise customers.
- Revise management command query to include all potentially-applicable enrollment records
- Move some fields from Global Degreed Configuration to Enterprise Degreed Configuration.
- Added LearnerInfoSerializer and CourseInfoSerializer for serializing xAPI payload data.
- Added endpoint to check a user's authorization to Enterprises based on membership in a given django group.
- Added missing migrations for xAPI LRS Configuration model
- Implemented reporting channel of course completion via X-API
- Add thumbnail images in exported metadata content by content type.
- Updated message for invalid Enterprise Customer Catalog references in B2B enrollment workflow.
- Updated TinCanPython package to support python 3
- Updated UUID field to nowrap in admin interface of enterprise customer catalog model.
- Display customer catalog content filter's default value on enterprise customer admin.
- Make customer catalog content filter's default value configurable.
- Pass catalog value only when provided on enterprise course enrollment page.
- Send learner data transmissions to integrated channels by course key and course run id.
- Use query param "catalog" instead of "enterprise_customer_catalog_uuid" for catalog based enterprise discounts.
- Apply enterprise catalog conditional offer by the provided enterprise catalog UUID.
- Modify enterprise branding config API to use enterprise slug as the lookup_field.
- Paginate linked learners list on manage learners Django admin view.
- Add unique slug field to EnterpriseCustomer.
- Update requirements to fix pip install issues and to keep in line with edx-platform.
- Fix the Direct-to-Audit enrollment issue in case of course instead of course run.
- Strip locale values.
- Add and transmit customer specific locales so that SuccessFactors show course title and description.
- Fix the Direct-to-Audit enrollment issue in case of course.
- 500 error when attempting to enroll using course-level URL.
- Add a progress_v2 option in the reporting config to be used for data API fetching.
- Increased character limit from 20 to 255 for field title in EnterpriseCustomerCatalog model
- Reorder list display for EnterpriseCustomerCatalogAdmin
- Add sorting order for EnterpriseCustomerCatalogAdmin
- Mark ECU as inactive internally if SAPSF says the ECU is inactive on their side.
- Admin tooling enterprise customer reporting configuration enhancement - Order by Enterprise Customer Name.
- Update DSC to show notification interstitial communicating to enterprise learner they are leaving company's site.
- Configuration to show/hide original price on enterprise course landing page.
- Remove constraints on the reporting config.
- Update enrollment api authorization to check group permissions.
- Dropped sap_success_factors_historicalsapsuccessfactorsenterprisecus80ad table.
- Add json report type.
- Allow reporting configs to work for arbitrary data and report types.
- Added ordering to resolve warnings of probable invalid pagination data.
- Update the messages when an enterprise learner leave an organization.
- Update user session when they become an Enterprise learner.
- Added ability to specify data sharing consent wording on a per enterprise basis.
- Add configuration to allow replacing potentially sensitive SSO usernames.
- Improved integrated channel logging.
- Fix the enterprise manage learner django admin tool is loading correctly for chrome users.
- Integrated channel refactoring cleanup.
- Refactored integrated channel code to allow for greater flexibility when transmitting content metadata.
- Update isort version and sort imports after making consent and integrated_channels first party apps.
- Temporarily disable linked learners list on manage learners Django admin view until paging can be added.
- Add EnterpriseCustomerCatalog course detail endpoint.
- Add "Enrollment Closed" in course title if the course is no longer open for enrollment.
- Support multiple emails in EnterpriseCustomerReportingConfiguration.
- Only require email(s) in EnterpriseCustomerReportingConfiguration if the selected delivery method is email.
- Remove the renderer.py file.
- Add functionality in enterprise django admin for transmitting courses metadata related to a specific enterprise.
- Indicate when a course is no longer open for enrollment by updating course title for transmit courses metadata.
- Decreased SuccessFactors course metadata chunk size from 1000 to 500, per SAP's recommendation.
- Updated the "Data Sharing Policy" language.
- Provide an option for enterprise to pull enterprise catalog API in XML format not just JSON.
- Add migration for removing old password fields from the database.
- Removed code references to old password fields.
- Improved handling of password fields on database models.
- Exclude credit course mode option from course enrollment page.
- Group Name, Active, Site, and Logo together.
- Rename "Provider id" form label to "Identity Provider"
- Rename "Entitlement id" form label to "Seat Entitlement"
- Rename "Coupon URL" form label to "Seat Entitlement URL"
- Add a "View details" hyperlink next to identity provider drop-down.
- Add a "Create a new catalog" link under the Catalog drop-down.
- Add a "View details" hyperlink next to catalog field, if catalog is selected.
- Add a "Create a new identity provider" link under the Identity Provider drop-down.
- Include start date in all course runs title when pushing to Integrated Channels.
- Add localized currency to enterprise landing page.
- Fix enterprise logo stretching issue in enterprise sidebar on course/program enrollment pages.
- Add missing migrations for sap_success_factors and degreed.
- Update django admin list view for enterprise customer model.
- SuccessFactors Admin Update: Enterprise Customer Configuration.
- Add sftp configuration options for EnterpriseCustomerReportingConfiguration.
- Add check for active companies when getting list of channels
- Add save_enterprise_customer_users command.
- Remove references to SSO IdP config drop_existing_session flag.
- Fix templates to use new bootstrap bundle library.
- Fix syntax error in template-embedded Javascript.
- Make sure root url has a fallback for proxy enrollment email links.
- Add course_enrollments API endpoint to swagger specification.
- Add publish_audit_enrollment_url flag to EnterpriseCustomerCatalog.
- Update create_enterprise_course_enrollment command.
- Ensure that proxy enrollment email links trigger SSO.
- Check site configuration for from email address first
- Added course start date to title string for instructor-led courses
- Redirect to embargo restriction message page if user is blocked from accessing course.
- Add integrated channel configuration info to course metadata push task logging.
- Include additional context for learner data transmission job exceptions.
- Track enterprise course enrollment events.
- Add Degreed as new integrated channel.
- Increase font size on data sharing consent page.
- Introduce the bulk enrollment/upgrade api endpoint for Enterprise Customers.
- Do not change EnterpriseCustomerReportingConfiguration.password on update.
- Add Identity Provider's ID to enterprise customer API response.
- Remove inaccurate landing page audit track language.
- Use LMS_INTERNAL_ROOT_URL instead of LMS_ROOT_URL for API base.
- Use the cryptography package instead of the unmaintained pycrypto.
- Link learner to enterprise customer directly using "tpa_hint" URL parameter.
- Update DSC policy to match legal requirements.
- Remove "Discount provided by..." text on the program landing page.
- Removing SAP_USE_ENTERPRISE_ENROLLMENT_PAGE switch via django waffle and use landing page URL instead of track selection page.
- Move data sharing policy to its own partial to improve theming of the data sharing consent page
- Apply appropriate content filtering to the EnterpriseCustomerCatalog detail endpoints.
- Show generic info message on enterprise course enrollment page.
- Added inline admin form to EnterpriseCustomer admin for EnterpriseCustomerCatalog.
- Fix error for empty course start date on DSC page.
- Fetch catalog courses in large chunks to avoid API limit.
- Preserve catalog querystring on declining DSC.
- Fixing logo size on themed enterprise pages
- Remove unused dependency on django-extensions
- Fix alteration in querystring parameters for decorator "enterprise_login_required".
- Get rid of the EnterpriseIntegratedChannel model and any other related but unused code.
- Fix migration issue for enabled-course-modes field of EnterpriseCustomerCatalog
- Update the call level to enrollment uls from EnterpriseCustomer to EnterpriseCustomerCatalog.
- Update EnterpriseApiClient.get_enterprise_courses to account for EnterpriseCustomerCatalogs.
- Update course enrollment view for enterprise enabled course modes.
- Update the EnterpriseCustomerCatalog migration.
- Add EnterpriseCustomerCatalog UUID as query parameter "catalog" in enterprise course and program enrollment URL's.
- Upgrade django-simple-history to 1.9.0. Add needed migrations.
- Introducing EnterpriseCustomerReportingConfig model for enterprise_reporting.
- If a course is unenrollable, the program and course enrollment landing pages will display only a subset of information.
- Change a log level from error to info in our LMS API Client, as it wasn't really an error.
- Implement a direct-audit-enrollment pathway for course enrollment.
- Implement a RouterView that the enrollment URLs have to go through before redirection to a downstream view.
- Added enabled_course_modes JSONField to EnterpriseCustomerCatalog model
- Added UTM parameters to marketing, track selection, and course/program enrollment URLs returned by Enterprise API.
- Fix bug related to EnterpriseCustomer creation form introduced with 0.51.0.
- Modify EnterpriseCustomer.catalog_contains_course to check EnterpriseCustomerCatalogs.
- Refactor user-facing DSC view's logic.
- Make discovery-service lookups site-aware
- Improved robustness for force_fresh_session decorator in conjunction with enterprise_login_required
- Consciously avoid attempting to sync back details for SAPSF users who aren't linked via SSO
- Add contains_content_items endpoint to EnterpriseCustomerViewSet and EnterpriseCustomerCatalogViewSet.
- Rewrite all of our CSS in SASS/SCSS.
- Use Bootstrap for our modals.
- Fix existing course modal UI issues using Bootstrap & SASS/SCSS.
- Step 2 in making enrollment email template linked to enterprise. Remove site from model. No migration.
- Step 1 in making enrollment email template linked to enterprise. Make 'site' nullable, add 'enterprise_customer'.
- Add extra details to the program enrollment landing page.
- Add proper permissions/filtering schemes for all of our endpoints.
- Step 3 in safe deployment of removing old consent models: make migrations to delete the outstanding fields/models.
- Step 2 in safe deployment of removing old consent models: remove require_account_level_consent, but no migration.
- Step 1 in safe deployment of removing old consent models: make require_account_level_consent nullable.
- Added some log messages to trace possible 404 issue.
- Remove old account-level consent features as well as consent from EnterpriseCourseEnrollment.
- Abstract away usage of configuration_helpers.
- Make bulk enrollment emails more intelligent
- Add exception handling for transmit course metadata task.
- Remove the auth-user endpoint completely.
- Allow multi-course enrollment for enterprise users in admin.
- Modified enterprise-learner API endpoint to include the new DataSharingConsent model data.
- Added MVP version of the Programs Enrollment Landing Page.
- Wrapped API error handling into the clients themselves.
- Removed the text if there is no discount on the course enrollment landing page.
- Ensure that segment is loaded and firing page events for all user facing enterprise views.
- Display the enterprise discounted text on the course enrollment landing page.
- Remove support for writing consent_granted in enterprise-course-enrollment api.
- Add architecture for program-scoped data sharing consent.
- Do not create baskets and orders for audit enrollments.
- Migrate the codebase to the new consent.models.DataSharingConsent model for when dealing with consent.
- Fix bug causing 500 error on course enrollment page when the course does not have a course image configured.
- Update Consent API to use Discovery worker user for auth, rather than request user.
- Update SAP course export to use enterprise courses API.
- Fix 500 server error on enterprise course enrollment page.
- Change landing page course modal to use discovery api for populating course details.
- Increase capability and compatibility of Consent API.
- Add new unified DataSharingConsent model to the consent app.
- Add Enterprise API Gateway for new Enterprise Catalogs and Programs endpoints.
- Add /enterprise/api/v1/enterprise-catalogs/ endpoint.
- Add /enterprise/api/v1/enterprise-catalogs/{uuid}/ endpoint.
- Add /enterprise/api/v1/programs/{uuid}/ endpoint.
- Added management command "create_enterprise_course_enrollments" for missing enterprise course enrollments.
- Fixed session reset decorator bug.
- Make whether Enterprise Customers get data for audit track enrollments configurable.
- Fixed the text cutoff in the bottom of the course info overlay.
- Only send one completion status per enrollment for SAP SuccessFactors.
- Create Audit enrollment in E-Commerce system when user enrolls in the audit mode in enterprise landing page.
- Remove Macro use from swagger api config as it is not supported by AWS.
- Introduce new endpoint to the Enterprise API to query for courses by enterprise id.
- Ensure catalog courses API endpoint users are associated with an EnterpriseCustomer.
- Officially include Consent application by ensuring it is installable.
- Add a new Consent application.
- Add initial implementation of a generic Consent API.
- Remove SSO-related consent capabilities
- Add page_size in querystring and data mapping template to fix "next" and "previous" urls in API response.
- Fix DSC Policy Language Needs
- Fix dependency installation process in setup.py.
- Add consent declined message to course enrollment landing page.
- Remove requirement on too-new django-simple-history version
- Require slightly older django-config-models version
- Move to edx-platform release-focused testing
- Add Django 1.11 support in Hawthorn testing branch
- Update Enterprise landing page styling/language
- Update enterprise catalog api endpoint so that api returns paginated catalogs.
- Update DSC page language.
- Introducing SAP_USE_ENTERPRISE_ENROLLMENT_PAGE switch via django waffle.
- Refactor of automatic session termination logic.
- Enforce data sharing consent at login for SSO users only if data sharing consent is requested at login.
- UI tweaks to the enterprise landing page and course overview modal.
- Disable atomic transactions for CourseEnrollmentView to ensure that new EnterpriseCustomerUser records are saved to the database in time for ecommerce API calls.
- Apply automatic session termination logic to enterprise landing page based on enterprise customer configuration.
- Sort course modes in landing page.
- Fix for being unable to create course catalog clients due to upstream removal of the library.
- Add the ability to pass limit, offset and page_size parameters to enterprise catalog courses.
- Properly bump PyPI to latest changes from v0.36.0.
- Migrate from old, monolithic python-social-auth to latest, split version.
- Rework the NotConnectedToOpenEdX exception to be just one, and to say which method/dependency is missing.
- Fix Next and Previous page urls for enterprise catalog courses.
- Displayed course run price with entitlement on landing page and course information overlay
- Allow account-level data sharing consent in a course-specific context
- Enable "Continue" button flows on enterprise landing page
- Fixed layout of data sharing consent decline modal on mobile view
- Add Django 1.10 support back
- Added course information overlay
- Make enterprise landing page url available in the enterprise api and SAP course export.
- Fix UI issues (unexpected html escape) on enterprise landing page.
- Bug fix for Data sharing consent pop up page.
- Update data backing and behavior of enterprise landing page
- Fix template prioritization bug
- Fix URL rendering in enterprise login decorator
- UI updates for data sharing consent page.
- Fix a bug with unexpected image data in SAP course export job.
- Add an EnterpriseApiClient method for getting enrollment data about a single user+course pair
- Add logic to enterprise landing page that redirects users to the course when already registered
- UI updates for course mode selection in enterprise landing page.
- Migrate from mako templates to django templates
- Display account created/linked messages on enterprise landing page
- Add Enable audit enrollment flag
- Add django admin for enterprise course enrollment models
- Bug fixes for SAP learner completion data passback.
- Additional minor UI updates for enterprise landing page.
- Add new externally managed consent option for enterprise customers.
- Fix invalid API Gateway URIs
- Add enterprise landing page
- Add tpa hint if available for launchURLs for SAP Course metadata push.
- Fix bug with inactivating SAP courses that are no longer in the catalog.
- Fix enterprise logo validation message for max image size limit
- Updated calls to get_edx_api_data as its signature has changed in openedx.
- Redirect to login instead of raising Http404 if EnterpriseCustomer missing.
- Add confirmation_alert_prompt_warning to context of account-level consent view.
- Increase max size limit for enterprise logo
- Added vertical hanging indent mode to isort settings and adjusted current imports
- Enforce login for course-specific data sharing consent views.
- Fixed the CSS for the expand arrow in the data sharing consent page.
- Update Data Sharing Consent message.
- Order enterprise customers by name on enterprise customer django admin
- Improve accounting for inactive courses for SAP course export.
- Bug Fix: Added Handling for user enrollment to courses that do not have a start date.
- Refine SAP course export parameters
- Added missing migration file for recent string updates
- Modified SAP completion status data to correctly indicate a failing grade to SAP systems.
- Bugfix: Resolve IntegrityError getting raised while linking existing enterprise users when data sharing consent is disabled for the related enterprise.
- Bugfix: Allow unlinking of enterprise learners with plus sign or certain other characters in email address.
- Edited UI and error strings.
- Fully implements sap_success_factors transmitters and client to communicate with the SAP SuccessFactors API, and to handle auditing and other business logic for both catalog and learner data calls.
- Support for segment.io events on data sharing consent flow
- Updates integrated_channels management command transmit_learner_data to support sending completion data for self-paced courses, and to use the Certificates API for instructor-paced courses.
- New data sharing consent view supporting failure_url parameter
- Removed OAuth2Authentication class from API viewset definitions
- Updated api.yaml to resolve swagger configuration issues.
- Allows enterprise enrollments to be made on servers that sit behind a load balancer.
- Added integrated_channels management command to transmit courseware metadata to SAP SuccessFactors.
- Added integrated_channels management command to transmit learner completion data to SAP SuccessFactors.
- Added api.yaml and api-compact.yaml files to introduce api endpoints for catalog api-manager.
- Added API endpoint for fetching catalogs and catalog courses.
- Added integrated_channels to MANIFEST.in to properly include migrations for the new packages.
- Fixed package listing in setup.py to avoid import errors when using as a library
- Added support for retrieving access token from SAP SuccessFactors
- Added indicator in Sap SuccessFactors admin tool for checking the configuration's access to SuccessFactors.
- Formally introducing new integrated_channels apps
- Adding new models and admin interfaces for integrated_channel and sap_success_factors
- Refactor _enroll_users() method to pay down technical debt
- Improve admin messaging around enrollment actions
- API for SSO pipeline is simplified to a single element.
- SSO users are linked to relevant Enterprise Customer when data sharing consent is disabled.
- SSO users are not created as EnterpriseCustomerUsers until all consent requirements have been fulfilled.
- Course Catalog API degrades gracefully in absence of Course Catalog service.
- Added API endpoint for fetching entitlements available to an enterprise learner
- Add id in EnterpriseCustomerUserSerializer fields
- Add UI handling for course-specific data sharing consent
- Add ability to select existing learners to be enrolled in courses from admin
- Resolved conflicting urls for User API endpoint.
- Added read-only enterprise API endpoint for IDAs.
- Moved utility functions from api.py to utils.py
- Add the ability to notify manually-enrolled learners via email.
- Add the EnterpriseCourseEnrollment model and related methods
- Fix a bug preventing a course catalog from being unlinked from an EnterpriseCustomer
- Enroll users in a program.
- Added view of seat entitlements on enterprise admin screen
- Dynamically fetch available course modes in the Manage learners admin
- Create pending enrollment for users who don't yet have an account.
- Added links from the Manage Learners admin panel to individual learners.
- Added the ability to search the Manage Learners admin panel by username and email address.
- In django admin page for enterprise customer added alphabetical ordering for catalog drop down and displayed catalog details link next to selected catalog.
- added the branding information api methods to return the enterprise customer logo on the basis of provider_id or uuid.
- Updated the logo image validator to take an image of size maximum of 4kb.
- Added a feature to enroll users in a course while linking them to an enterprise customer.
- Fixed EnterpriseCustomer form to make Catalog field optional
- Added user bulk linking option
- Added Data Sharing Consent feature
- Added checks to make sure enterprise customer and identity provider has one-to-one relation.
- Added a helper method to retrieve enterprise customer branding information
- Fixed User.post_save handler causing initial migrations to fail
- Set up logic to call course catalog API to retrieve catalog listing to attach to EnterpriseCustomer.
- Fixed missing migration.
- Added Pending Enterprise Customer User model - keeps track of user email linked to Enterprise Customer, but not yet used by any user.
- Added custom "Manage Learners" admin view.
- Added sphinx-napoleon plugin to support rendering Google Style docstrings into documentation properly (i.e. make it recognize function arguments, returns etc.)
- Added translation files
- Linked EnterpriseCustomer model to Identity Provider model
- Linked EnterpriseCustomer model to django Site model
- Enterprise Customer Branding Model and Django admin integration
- First release on PyPI.
- Models and Django admin integration