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

Add validation for threshold none invalid cases #4642

Merged

Conversation

ozer550
Copy link
Member

@ozer550 ozer550 commented Aug 14, 2024

Summary

Add validation to automatically resolve cases where allowed none value of threshold was causing validation error.

Description of the change(s) you made

  • Implement logic to resolve edge case with completion criteria objects.
  • Add test to confirm the edge case.

Manual verification steps performed

  1. Open studio in two different browsers.
  2. Login with admin user and userC.
  3. Simultaneously open same ContentNode with content kind html5 in both tabs.
  4. First change the completion criteria to reference model.
  5. In one tab change to approx time model.
  6. Simultaneously on other tab change the model to determined by resources.
  7. Validation error does not arise.

Does this introduce any tech-debt items?

Validation error would still come up for the cases where the changes just has a threshold field in it without the model information and may contradict with models that want it to be None. We would handle this in the frontend by reverting the optimistic changes.

References

closes #3879

Contributor's Checklist

PR process:

  • If this is an important user-facing change, PR or related issue the CHANGELOG label been added to this PR. Note: items with this label will be added to the CHANGELOG at a later time
  • If this includes an internal dependency change, a link to the diff is provided
  • The docs label has been added if this introduces a change that needs to be updated in the user docs?
  • If any Python requirements have changed, the updated requirements.txt files also included in this PR
  • Opportunities for using Google Analytics here are noted
  • Migrations are safe for a large db

Studio-specifc:

  • All user-facing strings are translated properly
  • The notranslate class been added to elements that shouldn't be translated by Google Chrome's automatic translation feature (e.g. icons, user-generated text)
  • All UI components are LTR and RTL compliant
  • Views are organized into pages, components, and layouts directories as described in the docs
  • Users' storage used is recalculated properly on any changes to main tree files
  • If there new ways this uses user data that needs to be factored into our Privacy Policy, it has been noted.

Testing:

  • Code is clean and well-commented
  • Contributor has fully tested the PR manually
  • If there are any front-end changes, before/after screenshots are included
  • Critical user journeys are covered by Gherkin stories
  • Any new interactions have been added to the QA Sheet
  • Critical and brittle code paths are covered by unit tests

Reviewer's Checklist

This section is for reviewers to fill out.

  • Automated test coverage is satisfactory
  • PR is fully functional
  • PR has been tested for accessibility regressions
  • External dependency files were updated if necessary (yarn and pip)
  • Documentation is updated
  • Contributor is in AUTHORS.md

@ozer550 ozer550 requested a review from rtibbles August 14, 2024 17:36
@rtibbles rtibbles self-assigned this Aug 19, 2024
Copy link
Member

@rtibbles rtibbles left a comment

Choose a reason for hiding this comment

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

One slight tweak to target this even more narrowly, but the test coverage looks good to me.

contentcuration/contentcuration/utils/nodes.py Outdated Show resolved Hide resolved
contentcuration/contentcuration/viewsets/contentnode.py Outdated Show resolved Hide resolved
@rtibbles rtibbles added this to the Studio: Bulk Editing Release milestone Aug 20, 2024
@ozer550 ozer550 force-pushed the fix-completion-criteria-edge-case branch from b2a2f0a to 230e65e Compare August 22, 2024 16:51
Copy link
Member

@rtibbles rtibbles left a comment

Choose a reason for hiding this comment

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

Changes look good, comments addressed - test coverage captures the error!

@rtibbles rtibbles merged commit 34a940f into learningequality:unstable Aug 22, 2024
13 checks passed
@akolson akolson mentioned this pull request Aug 24, 2024
@akolson akolson mentioned this pull request Oct 1, 2024
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.

ValidationError: Completion criteria doesn't conform to schema
2 participants