Har nå mulighet for default-valg i confirm (default-en vises med stor
bokstav, som i '(Y/n)', og velges hvis man skriver en tom linje), og
confirm leser input på samme måte som alt annet (via Menu.input_str).
Har laget en funksjon safe_str som prøver å gjøre om et vilkårlig
objekt til noe Python kan printe uten å bli sur. Tok i bruk denne i
raw_input-kallet i Menu.input_str (det viser seg at raw_input blir
muggen hvis den får et unicode-objekt som inneholder ikke-ASCII-tegn).
Uten dette risikerer man å se informasjon fra forrige gang menyen var
åpen når man sier 'what'. BuyMenu var rammet av dette problemet;
kanskje andre menyer også.
* Ny tabell Transaction som brukes for alle transaksjoner; hver
transaksjon kan være knyttet til en Purchase eller ha en tekstlig
beskrivelse. (BuyMenu og TransferMenu viser de to måtene å bruke
Transaction på)
* Hvert kjøp kan ha flere brukere. Prisen fordeles likt blant
kjøperne (for øyeblikket antar jeg at alle pengebeløp i databasen er
lagret i kroner, og når totalprisen for et kjøp ikke går opp i
antall kjøpere rundes det ned til et helt antall kroner)
* Forbedret input i BuyMenu -- den gjetter på om man skriver inn et
produkt eller en bruker basert på hvor den finner treff. (Hvis
treffene er like gode begge steder velges det vilkårlig -- dette kan
endres om det viser seg å være et problem i praksis)
* BuyMenu lagrer faktisk kjøpene i databasen.
* ShowUserMenu viser alle transaksjonene til brukeren. Dette kan bli
mye etter hvert, så det bør sikkert begrenses på et eller annet vis
(for eksempel at den bare viser de siste N, for et egnet naturlig
tall N).
* Menu-klassen utvidet med kode for å vise menyen og velge ting fra
den, samt litt mer generelle funksjoner for å lese input
* Ny klasse Selector for «små» menyer som bare er for å velge en verdi
(disse skal ikke ha undermenyer)
* Nye menyer: ShowUserMenu, BuyMenu (foreløpig med kun innlesing av
data, ikke lagring), ProductListMenu
* Forsøk på «intelligent» håndtering av input i BuyMenu (se
funksjonene dwim_search og guess_data_type)
* La inn to tøyseprodukter i datafilen for å ha noen produkter å teste
med