Hvis man skriver inn noe som ikke er et gyldig menyvalg og ikke gir
treff som produkt/bruker for hurtigkjøp, eller hvis man skriver noe
som ikke gir et eksakt treff for produkt/bruker og avbryter
valgmenyen, viser hovedmenyen seg selv på nytt (istedenfor at man får
bare prompt).
Nytt parameter stock fikk default-verdi 0. Dermed fungerer kall som
ikke vet om dette parameteret. Dessuten er det ganske tvilsomt at vi
noensinne har lyst til å initialisere et nytt produkt med en annen
stock enn 0.
To ting:
1) amount er ikke nødvendigvis 1 (selv om den alltid blir det slik vi
lager PurchaseEntries nå).
2) Justering av stock skal skje i Transaction.perform_transaction,
ikke når PurchaseEntry-en lages.
Foreløpig kan man få produkter sortert etter antall solgt og etter
total inntekt. Flere ting som kan legges til: totalt salg per ukedag,
per time i døgnet, per måned etc.
* Fjernet spørsmål om blippekatten siden denne ikke er i bruk lenger.
* Nytt spørsmål: Hvordan fikse feil.
* Fler detaljer om hvordan man oppdaterer FAQ-en.
Gjorde følgende endring i databasen:
ALTER TABLE products
ALTER COLUMN name
TYPE CHARACTER VARYING(45);
Lagret samtidig lengden på produktnavnfeltet i Product.name_length
istedenfor å hardkode det rundt omkring i formatstrenger og
input-sjekker.
(\ /)
(O.o)
(> <) Bunny approves these changes.
Det viser seg at pwd.getpwnam blir gretten av ikke-ASCII-tegn. Man
risikerer at denne blir kalt hvis man søker etter noe i Buy-menyen og
ikke får noen treff.
Jeg tror grunnen til at programmet henger iblant er at det finnes
flere åpne sesjoner, og at en annen sesjon har låst noe den aktive
sesjonen vil bruke.
De fleste menyene som ikke gjorde noen endringer lukket ikke sesjonen
sin, og selv de som gjorde endringer lukket sesjonen bare hvis de ble
fullført, ikke hvis de ble avbrutt.
Jeg har flyttet all åpning og lukking av sesjoner til funksjonen
Menu.execute, og lagt til egenskapen Menu.uses_db. For menyer som har
denne egenskapen satt til True lages det en sesjon i begynnelsen av
execute, og den lukkes før execute returnerer (lukkingen er beskyttet
av en finally).
Tips for debugging av denne typen problemer (dersom de vedvarer):
SELECT * FROM pg_stat_activity;
SELECT * FROM pg_locks;