diff --git a/CHANGELOG.md b/CHANGELOG.md index 39b4e75e..53493baf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed Discard / Stash not working on deletes (#688) - Fixed errors deploying decomposed production changes on Windows network drives (#696) - Improved performance of deploying changes to decomposed production items (#690) +- Fixed errors saving decomposed productions when invalid items in item cache (#701) +- Removed unnecessary Add and Remove menu items from decomposed productions (#701) ## [2.9.0] - 2025-01-09 diff --git a/cls/SourceControl/Git/Extension.cls b/cls/SourceControl/Git/Extension.cls index f780f2d1..6e5b9d46 100644 --- a/cls/SourceControl/Git/Extension.cls +++ b/cls/SourceControl/Git/Extension.cls @@ -263,7 +263,9 @@ Method OnSourceMenuContextItem(itemName As %String, menuItemName As %String, ByR } else { set Enabled = $case(menuItemName, "AddToSC":1,:-1) } - + } + if ##class(SourceControl.Git.Utils).ItemIsProductionToDecompose(itemName) && ((menuItemName = "AddToSC") || (menuItemName = "RemoveFromSC")) { + set Enabled = -1 } if (menuItemName '= "") { set DisplayName = ..LocalizeName(menuItemName) @@ -365,8 +367,7 @@ Method OnAfterSave(InternalName As %String, Object As %RegisteredObject = {$$$NU if $data(productionItems) { do ##class(SourceControl.Git.Change).RefreshUncommitted(,,,1) } - } - if ..IsInSourceControl(InternalName) { + } elseif ..IsInSourceControl(InternalName) { if fromWebApp { if fullExternalName = ##class(SourceControl.Git.Utils).FullExternalName(InternalName) { // Reimport item into database diff --git a/test/UnitTest/SourceControl/Git/ProductionDecomposition.cls b/test/UnitTest/SourceControl/Git/ProductionDecomposition.cls index 1a4d5fef..736f9789 100644 --- a/test/UnitTest/SourceControl/Git/ProductionDecomposition.cls +++ b/test/UnitTest/SourceControl/Git/ProductionDecomposition.cls @@ -156,8 +156,8 @@ XData ProductionDefinition3 Method OnBeforeAllTests() As %Status { - merge ..SourceControlGlobal = ^SYS("SourceControl") - return $$$OK + merge ..SourceControlGlobal = ^SYS("SourceControl") + return ##class(Ens.Director).StopProduction(,1) } Method OnBeforeOneTest() As %Status