Skip to content

Commit

Permalink
Merge branch 'master' into 0x29a/enable-ci-for-pull-requests-against-…
Browse files Browse the repository at this point in the history
…non-master-branches
  • Loading branch information
tecoholic authored Aug 9, 2024
2 parents 9b5d251 + 995002f commit 6053449
Show file tree
Hide file tree
Showing 88 changed files with 3,021 additions and 995 deletions.
20 changes: 20 additions & 0 deletions .annotation_safe_list.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,3 +37,23 @@ enterprise.HistoricalPendingEnrollment:
".. no_pii:": ""
moodle.HistoricalMoodleEnterpriseCustomerConfiguration:
".. no_pii:": ""
enterprise.EnterpriseCourseEntitlement:
".. no_pii:": ""
enterprise.EnterpriseCustomerSsoConfiguration:
".. no_pii:": ""
enterprise.HistoricalEnterpriseCourseEntitlement:
".. no_pii:": ""
enterprise.HistoricalEnterpriseCustomerInviteKey:
".. no_pii:": ""
enterprise.HistoricalEnterpriseCustomerSsoConfiguration:
".. no_pii:": ""
enterprise.HistoricalEnterpriseCustomerUser:
".. no_pii:": ""
enterprise.HistoricalEnterpriseGroup:
".. no_pii:": ""
enterprise.HistoricalEnterpriseGroupMembership:
".. no_pii:": ""
enterprise.HistoricalLearnerCreditEnterpriseCourseEnrollment:
".. no_pii:": ""
enterprise.HistoricalSystemWideEnterpriseUserRoleAssignment:
".. no_pii:": ""
5 changes: 2 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,8 @@ jobs:
fail-fast: false
matrix:
python-version:
- '3.8'
- '3.11'
toxenv: [quality, docs, django42-celery53, django42-pii-annotations]
toxenv: [quality, docs, django42-celery53, pii_check]
env:
RUNJSHINT: true
steps:
Expand All @@ -38,7 +37,7 @@ jobs:
TOXENV: ${{ matrix.toxenv }}
run: tox
- name: Run code coverage
if: matrix.python-version == '3.8' && matrix.toxenv == 'django42-celery53'
if: matrix.python-version == '3.11' && matrix.toxenv == 'django42-celery53'
uses: codecov/codecov-action@v4
with:
flags: unittests
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mysql8-migrations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
- name: Get pip cache dir
id: pip-cache-dir
run: |
echo "::set-output name=dir::$(pip cache dir)"
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Cache pip dependencies
id: cache-dependencies
uses: actions/cache@v2
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ jobs:
- name: setup python
uses: actions/setup-python@v2
with:
python-version: 3.8
python-version: 3.11
- name: Setup Node.js
uses: actions/setup-node@v2
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/upgrade-python-requirements.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Upgrade Requirements

on:
schedule:
- cron: "15 0 * * 2"
- cron: "0 2 * * 1"
workflow_dispatch:
inputs:
branch:
Expand Down
2 changes: 1 addition & 1 deletion .readthedocs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ version: 2
build:
os: "ubuntu-20.04"
tools:
python: "3.8"
python: "3.11"

# Build documentation in the docs/ directory with Sphinx
sphinx:
Expand Down
171 changes: 171 additions & 0 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,177 @@ Unreleased
----------
* nothing unreleased

[4.23.3]
---------
* fix: add missing migration for content_filter help text

[4.23.2]
---------
* test: pii check stage actually checks PII instead of not at all.

[4.23.1]
---------
* fix: don't allow saving duplicate EnterpriseCatalogQuery content_filter

[4.22.6]
----------
* feat: add created time to reponse

[4.22.5]
----------
* chore: requirement updates

[4.22.4]
----------
* feat: Adding enterprise-customer-support endpoint

[4.22.3]
----------
* bump enterprise to 4.22.3.

[4.22.2]
----------
* fix: Serializes `course_key` field from the federated-content-metadata, `CourseDetails` model within the `EnterpriseCourseEnrollmentSerializer`.

[4.22.1]
----------
* bump enterprise to 4.22.1.

[4.21.10]
----------
* created migration to create a system-wide enterprise role named `enterprise_provisioning_admin`.

[4.21.9]
---------
* fix: fixed search fetch crashing because of server taking too long for api request logs.

[4.21.8]
---------
* fix: fixed 500 error for search filter for api request logs in admin view.

[4.21.7]
---------
* feat: extend enterprise customer serializer to add detail for support tool

[4.21.6]
---------
* feat: add waffle flag for enterprise customer support tool

[4.21.5]
---------
* feat: allow PAs to access all enterprise customers

[4.21.4]
---------
* fix: Updates messaging on disable expiry for learner credit

[4.21.3]
---------
* chore: rename PAs django group name

[4.21.2]
---------
* feat: Updated EnterpriseCustomerSerializer to include additional fields

[4.21.1]
---------
* feat: add is_mobile transorfmer for CSOD content metadata exporter

[4.21.0]
---------
* refactor: replace openai usage with xpert api

[4.20.14]
---------
* chore: Update requirements

[4.20.13]
---------
* feat: added failed statuses for groups and new endpoint to update statuses

[4.20.12]
---------
* feat: added support for testing sftp connection inside ``EnterpriseCustomerReportingConfiguration`` instance.

[4.20.11]
---------
* fix: setting existing user group membership statuses

[4.20.10]
---------
* fix: fixing the status and datetime of removed group memberships

[4.20.9]
--------
* feat: Update permissions to grant access to provisioning admins

[4.20.8]
--------
* feat: atomically re-activate ECE when re-activating SCE
* feat: When listing unenrolled fulfillments, exclude ones with active enrollments

[4.20.7]
--------
* fix: add name from profile to group membership details

[4.20.6]
--------
* refactor: Removes ``career_engagement_network_message`` from ``EnterpriseCustomer``.

[4.20.5]
--------
* fix: submit the ``create_enterprise_enrollment`` task with a configurable countdown

[4.20.4]
--------
* feat: Populates ``learner_portal_sidebar_content`` in ``EnterpriseCustomer`` and removes references to old fields.

[4.20.3]
--------
* feat: Makes ``career_engagement_network_message`` field nullable in ``EnterpriseCustomer``.

[4.20.2]
--------
* fix: cancel-fulfillment endpoint is now idempotent

Additionally, this fixes a bug whereby users with the
``enterprise.can_manage_enterprise_fulfillment`` or
``enterprise.can_access_admin_dashboard`` permissions in at least
one enterprise could successfully authenticate against these endpoints
for *any* enterprise.

[4.20.1]
--------
* feat: Updating autocomplete field for Enteprise Group creation form

[4.20.0]
--------
* feat: Added a new field show_videos_in_learner_portal_search_results in the EnterpriseCustomer model.

[4.19.17]
---------
* feat: Adds new fields enable_learner_portal_sidebar_message and learner_portal_sidebar_content in EnterpriseCustomer.

[4.19.16]
---------
* feat: submit ``create_enterprise_enrollment`` task on commit

[4.19.15]
---------
* feat: added filtering for transmitted records using the is_transmitted column.

[4.19.14]
---------
* feat: reverts an errant 4.19.12

[4.19.13]
---------
* feat: added more integrated channels in mark_learner_transmissions_transmitted_true management command

[4.19.12]
---------
* feat: (reverted)

[4.19.11]
---------
* revert: Reversed the previous reversion of PR #2125, removing blackboard unencrypted columns again.
Expand Down
43 changes: 43 additions & 0 deletions docs/decisions/0014-enterprise-catalog-sync-catalogs.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
Catalog syncing behavior with enterprise-catalog service
------------------------------------------------------------------------------

Status
======

Accepted

Context
=======
We would like to have a way to reuse a saved set of courses configured by a query and use them in multiple catalogs across customers.


Decisions
=========

**Sync catalog/customer data with enterprise-catalog**
As the catalog data is saved in both edx-enterprise and enterprise-catalog, we need to make sure that catalog data is consistent across both.
In the context of edx-enterprise, changes to EnterpriseCatalogQuery and EnterpriseCustomerCatalog will be propagated to their counterparts
in the enterprise-catalog service.


Consequences
============

**EnterpriseCatalogQuery Sync Process**
The enterprise-catalog service enforces a uniqueness constraint for the `content_filter` field, and so edx-enterprise must enforce it as well
or the sync operation will fail and the entities will be out of sync with each other.

In the Django Admin console, whenever a new EnterpriseCatalogQuery is created, or an existing one edited, we first query enterprise-catalog to see if its
`content_filter` is already in use (by calculating the `content_filter` hash via a call to enterprise-catalog, and then attempting to retrieve
an existing catalog query from enterprise-catalog by that hash). If the new `content_filter` is unique, we will save the changes and propagate
them to enterprise-catalog.

If the `content_filter` is *not* unique, we display an error on the EnterpriseCatalogQuery edit page and don't commit the change.


**EnterpriseCustomerCatalog Sync Process**
In the Django Admin console, whenever a EnterpriseCustomerCatalog is created, or an existing one is edited, we simply pass the changes on to
enterprise-catalog without doing any checks for duplicates.

When it comes to custom `content_filter` fields attached to EnterpriseCustomerCatalog objects, enterprise-catalog doesn't care if they are
non-unique, and will simply update the corresponding catalog entity to point to the catalog query that matches the `content_filter`.
2 changes: 1 addition & 1 deletion enterprise/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
Your project description goes here.
"""

__version__ = "4.19.11"
__version__ = "4.23.3"
Loading

0 comments on commit 6053449

Please sign in to comment.