On Thu, Jun 15, 2017 at 07:21:31PM -0700, Simon Michael wrote:
> This has landed in master. Also multiple status filters in
> hledger-ui. The last is fiddly as expected..
> Please build and use master as much as possible, to see if we like
> these changes. The next major release is in about two weeks, IIRC.
Fantastic, works like a charm. And it struck me how simple the docs
on state, state flags and state toggles have become, whow. And to my
surprise the combine-state-toggling turned out to be the favourite here.
Reconciling/auditing is done a lot over here. Not only to check bank
statements, but also to check all advance payments we do for each
other are properly repaid and repaid just once. Sofar we used the
posting states to keep track in the Assets:Accounts Payable:RELATION
and Liablility:Accounts Receivable:RELATION. I'me hoping the checking
can be done visually from within hledger-ui instead of needing the
special program I made years ago geared to gnucash.
Today I lined up the girls for some user interface testing to compare
simon's implementation of combine-state-toggling:
U: toggle unmarked Initially show selected only,
P: toggle pending but toggle once one is selected.
C: toggle cleared Start again when all three are on.
and christofer's implementation of toggling-(complement-)states:
u: show unmarked only U: show all but unmarked
p: show pending only P: show all but pending
c: show cleared only C: show all but cleared
As you can see from the above, documenting the state/complement-state
thingy is straight forward and simple. To me it looked like a winner,
but much to my surprise explaining it to me wife and the youngest
daughter just got me blank faces staring at me: what the hell are you
doing. The eldest remarked: you're making us do some state calculus.
Apparently it's a programmers oddity to think of complementing states,
but the user is always right, especially when you're outnumbered :).
They unanimous and categorically rejected the complement state toggles
and choose for simon's implementation just on the bases of the explanation.
Okee, the user is not always right, they're sometimes deluded, yes.
So I did some more testing and forced the youngest to try it out,
expecting to change her mind as the complementing state is cleary
superiour. Heilas, I was the one to change mind:
when we need to reconcile bank statements, we need to be able
to look at the past to check there are no left over pending or
uncleared postings. And it turns out that's quite easy with
simon's implementation in the register screen:
select cleared, go down one transaction [needed due to warping]
add pending to the selection and drop cleared
check there no transactions above cursor
same with cleared/unmarked
trying this in christofer's implementation is a lot harder on the
brain, you really have to calculate the proper key to press,
whereas it's (visually) obvious in simon's implemantation.
Ofcourse it is learnable, but it's not nice from the start.
There are three minor points left: the warping, the lack of state info
and the docs on combining states in the ui as wel as in the cli.
1: Warping, to be delt with in a separate thread, makes you lose track
of the transaction group you're inspecting because you get warped
to the end of the selection list if the transaction under the
cursor is not in the new selection. To circumvent this odd
behaviour one has to pay attention to place the cursor on a
transaction that stays in the new selection before the toggling.
There is room for improvement there.
2: When a combined state view is presented it could/would be handy if
some 'electric' combined state was shown in the register screen.
It could well be this point becomes moot once the warping is fixed.
3: I'm not convinced the current wording for the combining nature of
states in the cli and the ui is readable enough for others. I've
tried a different wording for simon's implementation, to me it
seems more readable, probably because I like me own words :]
--
groetjes, carel