Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ENT-8005]: Refactor learner data transmission audit record #1973

Merged
merged 4 commits into from
Jan 10, 2024

Conversation

justEhmadSaeed
Copy link
Contributor

@justEhmadSaeed justEhmadSaeed commented Dec 21, 2023

JIRA Ticket: ENT-8005

Description:
Refactor learner data transmission audit records to utilize the updating record instead of creating a new one every time.
Note: Test cases for Canvas, blackboard, and Cornerstone are under progress.

Merge checklist:

  • Any new requirements are in the right place (do not manually modify the requirements/*.txt files)
    • base.in if needed in production but edx-platform doesn't install it
    • test-master.in if edx-platform pins it, with a matching version
    • make upgrade && make requirements have been run to regenerate requirements
  • make static has been run to update webpack bundling if any static content was updated
  • ./manage.py makemigrations has been run
    • Checkout the Database Migration Confluence page for helpful tips on creating migrations.
    • Note: This must be run if you modified any models.
      • It may or may not make a migration depending on exactly what you modified, but it should still be run.
    • This should be run from either a venv with all the lms/edx-enterprise requirements installed or if you checked out edx-enterprise into the src directory used by lms, you can run this command through an lms shell.
      • It would be ./manage.py lms makemigrations in the shell.
  • Version bumped
  • Changelog record added
  • Translations updated (see docs/internationalization.rst but also this isn't blocking for merge atm)

Post merge:

  • Tag pushed and a new version released
    • Note: Assets will be added automatically. You just need to provide a tag (should match your version number) and title and description.
  • After versioned build finishes in GitHub Actions, verify version has been pushed to PyPI
    • Each step in the release build has a condition flag that checks if the rest of the steps are done and if so will deploy to PyPi.
      (so basically once your build finishes, after maybe a minute you should see the new version in PyPi automatically (on refresh))
  • PR created in edx-platform to upgrade dependencies (including edx-enterprise)
    • This must be done after the version is visible in PyPi as make upgrade in edx-platform will look for the latest version in PyPi.
    • Note: the edx-enterprise constraint in edx-platform must also be bumped to the latest version in PyPi.


return [
BlackboardLearnerDataTransmissionAudit(
course_id = get_course_id_for_enrollment(enterprise_enrollment)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have we confirmed if this reutrns a course key or course run key?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The course run keys have already been removed. The existing code only returns course key.

Copy link
Member

@sameenfatima78 sameenfatima78 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good but should take a second opinion from @zamanafzal before merging.

BlackboardLearnerDataTransmissionAudit(
course_id = get_course_id_for_enrollment(enterprise_enrollment)
# We only want to send one record per enrollment and course, so we check if one exists first.
learner_transmission_record = BlackboardLearnerDataTransmissionAudit.objects.filter(
Copy link
Member

@zamanafzal zamanafzal Jan 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about using get_or_create instead of checking the record?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem is that we're not creating the record at this point but creating its model instance. As far as I know, the get_or_create method creates the record in db. Correct me if I'm wrong because this method can make the code a lot cleaner.

@justEhmadSaeed justEhmadSaeed merged commit 3b3b2b6 into master Jan 10, 2024
9 checks passed
@justEhmadSaeed justEhmadSaeed deleted the asaeed/ENT-8005 branch January 10, 2024 10:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants