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

DYN-6123 Fix groups loose associations with notes and nested groups when a custom node is created #14220

Merged
merged 3 commits into from
Aug 4, 2023

Conversation

zeusongit
Copy link
Contributor

@zeusongit zeusongit commented Aug 2, 2023

Purpose

https://jira.autodesk.com/browse/DYN-6123

Fixed:

  • Notes now stay in groups when custom nodes are created.
  • BONUS: Nested groups also stay in parent groups when custom nodes are created.

DynamoSandbox_rjsduF2pBk

DynamoSandbox_rjsMoo6JpG

Also fixes the following issue:

https://jira.autodesk.com/browse/DYN-6103

In case of 3 groups if we combine them it will add the other 2 groups to the main group.
The crash occurred was while removing more than 1 group from a group.

We maintain a List of nested groups(geometry) and a Dictionary of their GUIDs and index at which they are stored in the list.
While splitting a nested group, we run a loop of all the groups that are nested inside the main group, since in this case we have 2 groups inside the main group, the loop will run twice, in natural order. So it will remove the group at index 0 and then 1 ...etc.
Removing the group at index 0 will change the size of the List, and when the second iteration is run to remove the group at index 1, it throws the index out of bounds error, since the list has only 1 element at index 0 now.

To fix this I have updated the dictionary to map GUID with Geometry instead of index, this way we will always be sure about the order, since we are directly matching the element.

Also, edited the test to catch this error, which only tested with 2 groups previously.

Declarations

Check these if you believe they are true

  • The codebase is in a better state after this PR
  • Is documented according to the standards
  • The level of testing this PR includes is appropriate
  • User facing strings, if any, are extracted into *.resx files
  • All tests pass using the self-service CI.
  • Snapshot of UI changes, if any.
  • Changes to the API follow Semantic Versioning and are documented in the API Changes document.
  • This PR modifies some build requirements and the readme is updated
  • This PR contains no files larger than 50 MB

Release Notes

  • Fix groups loose associations with notes and nested groups when a custom node is created
  • Fix crash when undoing a group to group addition

Reviewers

@DynamoDS/dynamo

@zeusongit zeusongit added this to the 2.19.0 milestone Aug 2, 2023
@QilongTang
Copy link
Contributor

QilongTang commented Aug 3, 2023

Love the bonus here! Nice job, any chance we can add unit test to this?

@QilongTang QilongTang merged commit 5a74097 into DynamoDS:master Aug 4, 2023
@QilongTang
Copy link
Contributor

The reported regression seems to be sporadic, merging

@QilongTang
Copy link
Contributor

We probably need cherry-picking

QilongTang pushed a commit that referenced this pull request Aug 7, 2023
…hen a custom node is created (#14220)

* Fix note in group in customnode

* add test

* merge test from other PR
@QilongTang QilongTang mentioned this pull request Aug 7, 2023
9 tasks
QilongTang added a commit that referenced this pull request Aug 7, 2023
…hen a custom node is created (#14220) (#14227)

* Fix note in group in customnode

* add test

* merge test from other PR

Co-authored-by: Ashish Aggarwal <[email protected]>
@QilongTang QilongTang mentioned this pull request Mar 26, 2024
9 tasks
QilongTang pushed a commit that referenced this pull request Mar 26, 2024
…hen a custom node is created (#14220)

* Fix note in group in customnode

* add test

* merge test from other PR
QilongTang added a commit that referenced this pull request Mar 26, 2024
* [DYN-4302 + DYN-5259] Add visual indication for deprecated packages (#13413)

* add deprecated label

* update extension

* sync package manger and package view displays

* finishes

* set horizontal offset

* update HD profile icon

* Update PackageDetailsViewModel.cs

* add comment

* conflicts fix

* Update PackageDetailItem.cs

* Revert "conflicts fix"

This reverts commit 2e60462.

* conflict fix2

* DYN-3652 docs browser Artifakt font fails if not installed (#13654)

* Embedded Artifakt Element as base64

- to ensure the DocumentationBrowser always loads with the correct font, the Artifakt Element font is now included in the css style sheet as base64

* Refactored font resource

- now substitutes an embedded resource containing the font style and converts to base64 before rendering the html page

* Revert unnecessary changes

* FontFace Css rule reintroduced

- brought back a fontface css rule to be whitelisted by the Md2HtmlSanitizer
- all DocumentationBrowserExtension tests passing

* DYN-5297 Import Excel Small Numbers (#13680)

* read scientific notation

* remove unecessary reference

* Fix for situation with formulas and add unit tests for scientific notation

* Dyn 5314 open xml (#13647)

* Fix String display

* Adding Unit test

* Checking Formula

* Fixing Ghost warning (#13820)

* Fixing Ghost warning

* Keeping the Warning Color for the new state

* Adding the Unit test

* Revert "Keeping the Warning Color for the new state"

This reverts commit 40e9643.

* Revert "Fixing Ghost warning"

This reverts commit 04c14c1.

* Updates, Implementation and Test

* fix List.AllIndicesOf node (#13773)

* Handle null values in watch node/preview bubble (#13855)

* Handle null values in watch node/preview bubble

* Add test

* Update WatchNodeTests.cs

* Add null check (#13908)

* DYN-6073 civil3 d packages tour crashing (#14338)

* DYN-6073 Civil3D Packages Guide Crashing

It was crashing due that the user tried to close the Step 4 clicking the PackageSearch window and the Popup is not closed but seems that is already disposed.

* DYN-6073 Civil3D Package Tour Crashing

This change is disabling the close button in the PackageManagerSearch window when running the Packages tour, when passing to the next Step the button is enabled again (unless the next step also requires to disable the button). I've added a new icon image that will be shown when the close button is disabled.
In this way we will be preventing the crash when the user try to close the Packages tour by closing the PackageManagerSearch window

* DYN-6073 Civil3D Package Tour Crashing

This fix will solve the problem of the packages guide crashing when clicking the Library (package installed) for passing from Step8 to Step9.

* Update to remove extra code

* Remove the test causing build failure

* DYN-6123 Fix groups loose associations with notes and nested groups when a custom node is created (#14220)

* Fix note in group in customnode

* add test

* merge test from other PR

* DYN-6130 remove the toast notification (#14317) (#14332)

* Make sure close the Toast notification when Dynamo closes

* Removing extra file

* Removing extra file

* Relocate the responsibility about the toast notification to the DynamoViewModel

* removing unnecessary using

* take advantage of already implementation to apply minimal changes

* Moving the code to a proper place

---------

Co-authored-by: Jesus Alfredo Alviño <[email protected]>

* DependencyType  match (#14314)

* remove extra code

---------

Co-authored-by: Ashish Aggarwal <[email protected]>
Co-authored-by: Deyan Nenov <[email protected]>
Co-authored-by: filipeotero <[email protected]>
Co-authored-by: jesusalvino <[email protected]>
Co-authored-by: aparajit-pratap <[email protected]>
Co-authored-by: reddyashish <[email protected]>
Co-authored-by: Roberto T <[email protected]>
Co-authored-by: Jesus Alfredo Alviño <[email protected]>
twastvedt pushed a commit that referenced this pull request Sep 19, 2024
…hen a custom node is created (#14220)

* Fix note in group in customnode

* add test

* merge test from other PR

(cherry picked from commit 5a74097)

# Conflicts:
#	src/DynamoCoreWpf/ViewModels/Core/AnnotationViewModel.cs
twastvedt pushed a commit that referenced this pull request Sep 30, 2024
…hen a custom node is created (#14220)

* Fix note in group in customnode

* add test

* merge test from other PR

(cherry picked from commit 5a74097)

# Conflicts:
#	src/DynamoCoreWpf/ViewModels/Core/AnnotationViewModel.cs
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.

Groups lose associations with notes when a custom node is created from them
2 participants