- Fix CSV file names
- Fix ordering of skills charts data
- Updated text for null emails record of leaderboard.
- Re-write top 10 charts queries for Enrollments, Engagements and Completions
- Fixed null email issue for leaderboard.
- Added management command to pre-warm analytics data.
- Same as
10.0.0
- Bumping the version so a new tag can be created in the GitHub
- feat!: Python 3.12 Upgrade
- Dropped support for
Python<3.12
- feat: Add API to fetch enterprise budgets information
- feat: Added caching for API endpoints related to advanced analytics.
- feat: Transform extensions_requested field to return 0 if None
- fix: Added handling for edge cases while fetching data from database.
- feat: Remove audit data filtering
- fix: Added guard against empty data in leaderboard queries.
- chore: upgrade python requirements
- pin astriod and edx-lint packages
- refactor: Further improvement in SQL queries for leaderboard API endpoint.
- fix: remove the cache logging on EnterpriseLearnerEnrollmentViewSet.
- fix: Added temporary cache logging on EnterpriseLearnerEnrollmentViewSet.
- refactor: Performance optimizations for leaderboard API endpoints
- fix: disable caching for EnterpriseLearnerEnrollmentViewSet
- refactor: Performance optimizations for engagement and completions related API endpoints.
- revert: Revert "feat!: Python 3.12 Upgrade"
- feat: convert the skills pandas code into sql queries for better performance
- fix: Remove hyphens from enterprise customer UUID before database query.
- refactor: Performance optimizations for enrollments related API endpoints.
- fix: Fixed a datetime conversion error appearing on production.
- perf: Performance enhancements for admin analytics aggregates endpoint.
- feat: Added API endpoints for advance analytics engagements data.
- chore: Added logging to measure time taken for different code blocks.
- fix: typo
- refactor: Add logs and time measurements for different code blocks
- feat: Add API endpoints for advance analytics leaderboard data
- refactor: Use response_type and chart_type in advance analytics enrollments API endpoints
- feat: add endpoints to get completion data for an enterprise customer
- Dependency updates
- Added API endpoints for advance analytics enrollments data.
- Added a new model and REST endpoint to get Exec Ed LC Module Performance data.
- feat: endpoint to get skills aggregated data for an enterprise customer
- Dependency updates
- refactor: Refactor code to avoid error conditions.
- Added a new API endpoint to get admin analytics aggregated data on user enrollment and engagement.
- Upgrade python requirements
- Fix migration for EnterpriseLearnerEnrollment model
- Add new fields in EnterpriseLearnerEnrollment model
- Dependency updates
- Dependency updates
- Bump version
- Dropped support for
Django<4.2
- Added support for
Python 3.12
- Update uuid4 regex
- Permanently enable streaming csv
- Add streaming csv support
- Add support to avoid call to LMS for filtering enrollments
- Added retry mechanism for failed report deliveries.
- Add data export timestamp
- Update NullBooleanField for Django 4.2 support
- Add subsidy_access_policy_display_name field in EnterpriseSubsidyBudget model
- Exclude hashed id field from EnterpriseSubsidyBudgetSerializer
- Added model and api for new policy/budget aggregates - EnterpriseSubsidyBudget
- Rename summary to learner_engagement in EnterpriseLearnerEnrollmentViewSet response
- Fix offer id filtering in EnterpriseLearnerEnrollmentViewSet
- Add api filtering for EnterpriseLearnerEnrollmentViewSet for course_title or user_email
- Add api endpoint for EnterpriseAdminLearnerProgress and EnterpriseAdminSummarizeInsights models
- Add EnterpriseAdminLearnerProgress and EnterpriseAdminSummarizeInsights models
- Support added for Django 4.2
- Sort enterprise enrollments by default on last_activity_date.
- Added new fields for offer utilization in OCM and Exec-Ed product types.
- Added new fields for subsidy and product_line in EnterpriseLearnerEnrollmentViewSet.
- Improve querries and implement caching for EnterpriseLearnerEnrollmentViewSet.
- Allow querying of offers by either new style UUIDs or old style enterprise ID numbers.
- Add to_internal_value method for offer_id translation.
- Add support for offer_id to be either an integer or a UUID.
- Migrate offer_id to a varchar field in the EnterpriseOffer and EnterpriseLearnerEnrollment models.
- Releasing a backlog of dependency upgrades and bug fixes.
- Refactor enterprise api client and view filters to use cache key without user and remove dependency on session.
- Fixed get_enterprise_customer URL.
- Added logging for Enterprise API client for better debugging.
- Revert 4.6.0.
- Update primary key field in EnterpriseLearnerEnrollment to be primary_key from enterprise_enrollment_id.
- Replace self.client in EnterpriseCatalogAPIClient with self._load_data to account for OAuth client changes in enterprise_reporting.
- Add optional ignore_null_course_list_price query parameter to filter out enrollment records that have been refunded.
- Replace EdxRestApiClient with OAuthAPIClient.
- fix: use EnterpriseReportingModelManager for EnterpriseOffer
- Bump version
- Add EnterpriseOffer and EnterpriseOfferViewSet for offers aggregation data
- Add offer_id to EnterpriseLearnerEnrollment
- Added tests for EnterpriseLearnerEnrollment.total_learning_time_seconds field.
- Fixed issue with total_learning_time_seconds field in EnterpriseLearnerEnrollment
- Add total_learning_time_seconds field in EnterpriseLearnerEnrollment
- Rename base class to a more appropriate name
- Remove viewsets.ViewSet from base class
- Make API endpoints readonly.
- Remove error handling for rate limit exceptions for data API calls
- Update error handling for rate limit exceptions. Moved handling to source of errors.
- Added error handling for rate limit exceptions
- Removed currently broken admin url inclusion from enterprise-data.
- Created a new management command for adding dummy EnterpriseLearner and EnterpriseLearnerEnrollment data for learner progress report v1.
- Created a new management command for adding EnterpriseLearnerEnrollment dummy data for learner progress report v1.
- Created a new management command for adding dummy data for learner progress report v1.
- Dropped support for Django 2.2, 3.0 and 3.1
- Added support for Django32
- Add api gateway spec for LPR V1 API
- add primary_program_type field in EnterpriseLearnerEnrollment
- update max_length value for existing fields in EnterpriseLearnerEnrollment
- Remove old field names from LPR API V1
- Maintain same field order for progress_v3 csv generated from admin-portal and enterprise_reporting
- Pass old and new fields in LPR API V1 response for EnterpriseLearnerViewSet and EnterpriseLearnerEnrollmentViewSet
- Update csv header for EnterpriseLearnerViewSet and EnterpriseLearnerEnrollmentViewSet APIs
- Add support for progress_v3 enterprise report
- Add ref_name to the same named serializers in v0 and v1 of enterprise data
- Include has_passed field in API V1 response
- Include all fields in Analytics API V1 response
- Update the edx-rbac from 1.3.3 to 1.5.0
- Revert changes made in 2.2.15
- Update default database selection for Analytics API V1
- Update filter backend queryset for Audit enrollments
- Update logs
- Database query updates
- Database query optimizations for API V1
- Add more logging and remove filter backend
- Add logging and update queryset logic
- Remove EnterpriseReportingLinkedUserModelManager
- Rename API V1 endpoint name from learners to users
- Alter model field type from Decimal to Float
- Add enterprise_enrollment_id as primary key on EnterpriseLearnerEnrollment model
- Update API V1
- Updated API V1 Serializers
- Updated API V1 Model Field Types
- Fix incorrect model field name
- Update API V1 model constraints
- API V1 model changes
- Fix model field in query
- New v1 API to leverage Snowflake powered analytics
- Updated S3 Object locations for Pearson reports.
- added engagement in DATA_TYPES.
- Removed
python_2_unicode_compatible
decorator.
- Added custom pagination to increase page_size limit of Enterprise Enrollments API
- Updates factories to create more dummy data
- Adds course and date filters to the enrollment view
- Updates README with installation instructions
- Upgrade python packages.
- Add support for python 3.8
- Fix for JWT being double encoded
- Drop python 2.7 support
- Add support to Django 2.0, 2.1 and 2.2
- Fix compatibility warnings with Django2.0. Remove support for Django<1.9,
- Upgrade python packages.
- Added enterprise learner engagement report.
- Upgrade python packages. Using requirements/base.in to load requirements.
- Package requirements of enterprise_reporting scripts are declared as extra requirements.
- added support of search query param in EnterpriseEnrollmentsViewSet.
- Update edx-rbac.
- Added the ability to include or exclude date from reporting configuration file name.
- Added the correct condition for logging the warning in enterprise-enrollments endpoint.
- Requests package upgraded from 2.9.1 to 2.22.0.
- Removed the NotFound exception in enterprise-enrollments endpoint.
- Upgrade python packages.
- Update changelog.
- Fix zip password decryption for sftp delivery.
- Replaced has_passed field in enrollments API with progress_status.
- Fixed issue where same day un-enrollment is shown as FALSE in unenrollment_end_within_date column of learner report.
- Do not apply encrypted version of password on zipfile in enterprise reporting.
- Make zipfile password protected with encrypted_password in enterprise reporting.
- Replce edx-rbac jwt utils with edx-drf-extensions jwt utils
- Add logging to monitor enterprise data api.
- Pin edx-rbac to 0.2.1 and other package upgrades.
- filtering audit enrollment records based on Enterprise customer's enable_audit_data_reporting instead of enable_audit_enrollment
- Pin edx-opaque-keys to 0.4.4 to avoid dependency conflicts downstream.
- Fallback to request.auth if JWT cookies are not found.
- Remove RBAC switch from DB.
- Replace edx_rbac.utils.get_decoded_jwt_from_request with edx_rest_framework_extensions.auth.jwt.cookies.get_decoded_jwt.
- Clean up rbac authorization related waffle switche OFF logic.
- Version upgrade for edx-rbac.
- Use get_decoded_jwt_from_request from edx-rbac.
- Version upgrade of edx-rbac.
- Turn on role base access control switch.
- Update role base permission checks
- Moved feature role models to a separate django app.
- Initial implementation of RBAC logic in viewsets and filters, behind a waffle switch.
- Add feature role models for permission based checks
- In audit enrollments filtering, only filter out audit rows that do not have any offer or code applied.
- Respect the "externally managed" data consent policy in the enrollment view.
- Bumping version so others can install newer version of this app that includes convenient management commands for devs
- Includes create_enterprise_user, create_enterprise_enrollment management commands for creating demo test data for local development
- Only include current active enrollments which are not complete yet in active learners table.
Revert 1.0.9 changes - enrollment_created_date as this value is redundent with the enrollment_created_timestamp
Upgrade dependencies
- Add "enrollment_created_date" to progress report
- Enable audit enrollments filtering on field user_current_enrollment_mode for model EnterpriseEnrollment
- Fixed KeyError issue when PGP Encryption key is not found
- Updating enrollment_count and course_completion_count computations to restrict to consent_granted=True enrollments
- Ability to PGP encrypt report files sent via email and SFTP
- Updating packages
- Tweaking a outeref call for course_completion_count computation
- Fixing bug with course_completion_count computation
- Making enterprise_user endpoint sortable on enrollment_count and course_completion_count
- Updated edx-drf-extensions imports. edx-enterprise-data will no longer work with outdated versions of edx-drf-extensions.
- Add sorting for /learner_completed_courses endpoint.
- Add sorting for /users endpoint
- Add progress_v2 report generation in JSON format
- Add filter all_enrollments_passed to filter out enterprise learners on the basis of all enrollments passed
- Add extra field course_completion_count in response when "extra_fields" query param has value course_completion_count
- Running make upgrade and installing new packages
- Update EnterpriseUser and EnterpriseLearnerCompletedCourses viewset/serializers to ignore enrollments without content for calculations
- Update the course catalog CSV flat file to have only one single header and a line of rows in JSON form.
- Adding filters for Learner Activity cards. These include:
- Active learners in past week.
- Inactive learners in past week.
- Inactive learners in past month
- Adding query params on /users/ enpoint for active_courses and enrollment_count
- Add query param to get learners passed in last week
- Add support to get number of completed courses against each learner.
- Adding EnterpriseUser endpoint support (serializer/viewset/url)
- Adding ForeignKey relationship between EnterpriseEnrollment and EnterpriseUser
- Updating some tox-battery requirements
- Switching permission model to require enterprise_data_api_access group access
- Updated requirement versions
- Enable ordering for all model fields in EnterpriseEnrollmentsViewSet.
- Fixed migrations for enterprise_user table
- Upgrade Django version to 1.11.15
[0.2.1] - 2018-08-1 * Add support to get last_updated_date of enterprise enrollments * Allow api access to enrollments without pagination using ?no_page=true query parameter * Add .json fixture files to manifest and published package
- Add additional authorization check to enterprise data api endpoint.
- Add support for sorting in the enrollments endpoint.
- Fix broken link in README.
- Introduce endpoint for returning summary data about enterprise enrollments.
- Make the enterprise enrollment schema match the field changes made in the pipeline.
- Clean up field name discrepancy for enterprise_site_id and user_account_creation_timestamp
- Add enterprise_site_id to response and align enterprise_sso_uid with the proper field from the pipeline.
- Add new app enterprise_api. This django app is used to expose a REST endpoint in the edx-analytics-data-api project.