lmi
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lmi] Direct drill-down census editor testing


From: Greg Chicares
Subject: Re: [lmi] Direct drill-down census editor testing
Date: Wed, 14 Dec 2011 09:08:33 +0000
User-agent: Mozilla/5.0 (Windows NT 5.1; rv:8.0) Gecko/20111105 Thunderbird/8.0

On 2011-11-24 20:49Z, Vaclav Slavik wrote:
> On 2011-11-23 17:09, Boutin, Wendy wrote:
>> - move focus to another control
> Ah, I didn't think to check this, I only looked for changes occurring
> immediately after changing a value, sorry about that.
> 
> Unless I'm missing some subtlety once again, this patch fixes it:

Applied 20111214T0047Z.

Now, with the 'sample' product, if I change 'DefinitionOfLifeInsurance'
to "GPT", then 'DefinitionOfMaterialChange' is forced to change to
"GPT adjustment event", as desired. That's MvcModel::Reconcile()'s
purpose: the Model has entered a potentially inconsistent state due to
a permissible change in X, and Reconcile() forces Y to change so that
it's consonant with X's new value.

If I later change 'DefinitionOfLifeInsurance' to "CVAT", then Reconcile()
forces 'DefinitionOfMaterialChange' to an arbitrary value that's consonant
with "CVAT". "GPT adjustment event" is not consonant, but there's no good
reason to prefer any of the permissible choices over any other, so the
choice really is arbitrary. (Use the `grep durbatul *.?pp` "backdoor" so
that four choices are permitted.)

The MVC Controller should do more than just call MvcModel::Reconcile().
In the example above, we've chosen "CVAT", and let's assume we selected
"Earlier of ..." for 'DefinitionOfMaterialChange'. Now (using HEAD) try to
change that selection to "GPT adjustment event" in the tabbed dialog: you
can't, because that's not permitted in the "CVAT" context (so it's grayed
by MvcController::ConditionallyEnableItems()). However, the census editor
presently allows you to select the impermissible "GPT adjustment event",
but then this happens:
    Input& model = view_.cell_parms()[row];
    model.Reconcile();
The impermissible selection enters the Model, and then Reconcile() is
called, which changes the selection to "Unnecessary premium". That's not
what the user chose (which was impermissible). Surprisingly (to the user),
it's not the original selection, either, which was overwritten before
Reconcile() was called.

I think the ultimate solution is a distinct MvcController-like class for
the census editor.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]