Feb 14, 2012 at 2:08 PM
Edited Feb 14, 2012 at 2:08 PM
From a UX point of view this seems to be not really nice as this would mean that a user needs to access our module at least once before they can go to the taxonomy settings.
My first idea of a workaround (http://orchard.codeplex.com/discussions/310576) also doesn't work - as it seems that the ShellDescriptor is only updated once after ALL features had been enabled/disabled
and not after a state change of EACH feature :-(
It also seemed strange to me that disabling was done in the right order, just enabling was in the wrong/reversed order.
So I tried to locate the cause of this issue. I think I found the cause in ShellStateCoordinator.cs
In line 174 the order is Reverse(). - that's correct in the blocks above when disabling items, but seems to be wrong when enabling:
foreach (var entry in allEntries.Reverse().Where(entry => IsRising(entry.FeatureState)))
After changing the line to:
foreach (var entry in allEntries.Where(entry => IsRising(entry.FeatureState)))
the events are fired in the right order.
Is this correct? What should I do to ensure that the fix is included in 1.4?