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

Fix bulk descendants boolean maps #4751

Conversation

AlexVelezLl
Copy link
Member

@AlexVelezLl AlexVelezLl commented Sep 24, 2024

Summary

Description of the change(s) you made

  1. This PR changes the behaviour when we update boolean map fields when updating all descendants of a folder. This will now just add all new options in boolean maps to descendants instead of replacing them with the current ones.

  2. This PR also fixes a bug that removed all current categories and just added new ones when we inherited suggested categories from the parent folder.

Manual verification steps performed

  1. Tested bulk descendants changes with boolean maps fields, and verified that the described behaviour was being stored in the backend, in vuex, and in indexedDB.
  2. Tested that bulk descendants changes are being applied correctly when these changes are being applied from remote.
  3. Tested that bulk descendants changes are being applied correctly when these changes are stored and needs to be applied to fetched data before sync.

Screenshots (if applicable)

Compartir.pantalla.-.2024-09-25.09_29_33.mp4

Does this introduce any tech-debt items?

If in the future we want to allow user to choose between add options or replace them, we will probably need to come to this PR and see the changes, as I havent left this extensible for that behaviour.


Reviewer guidance

How can a reviewer test these changes?

Play with the descendants editing feature, for both mapFields (categories, levels, resources needed) and non mapFields (language), and check that it follows the new required behaviour and no regressions are observed.

Are there any risky areas that deserve extra testing?

The whole descendants editing behaviour, whether it is from boolean maps, or normal fields, if its done in another browser and synced with the curreent one, stored changes have not being synced.

References

Closes #4748.

Comments


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

@AlexVelezLl AlexVelezLl marked this pull request as ready for review September 25, 2024 14:47
...contentNodeData,
...getMergedMapFields(node, contentNodeData),
};
console.log('contentNodeData', contentNodeData);
Copy link
Member

Choose a reason for hiding this comment

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

👀

Copy link
Member Author

Choose a reason for hiding this comment

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

Whoops. Just pushed the changes! Thank you!

Copy link
Member

@akolson akolson left a comment

Choose a reason for hiding this comment

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

The changes look good to me and enhance the initial implementation. I’ve also reviewed the bulk edit feature and haven’t observed any regressions. I'll keep the approval open in case any of the other assignees have additional comments or suggestions.
Thanks @AlexVelezLl

Copy link
Member

@LianaHarris360 LianaHarris360 left a comment

Choose a reason for hiding this comment

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

Updating the descendants of a folder works as expected and I see nothing wrong with the code changes!

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.

I've not tested, but code changes make sense to me - and looks like we are just reusing the merge map fields everywhere now, so that all seems consistent.

@akolson akolson merged commit 0a6da56 into learningequality:unstable Sep 27, 2024
13 checks passed
@AlexVelezLl AlexVelezLl deleted the fix-bulk-descendants-boolean-maps branch September 27, 2024 20:05
@pcenov
Copy link
Member

pcenov commented Sep 30, 2024

Thanks @AlexVelezLl - no issues observed while manually testing.

@akolson akolson mentioned this pull request Sep 30, 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.

Unstable - Bulk editing on a main folder level - It's possible to replace and remove preexisting categories
5 participants