Commit Graph

190 Commits

Author SHA1 Message Date
Øystein Ingmar Skartsæterhagen a0ac2bd633 Forsøkt å fikse hengeproblemet.
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;
2010-05-16 18:43:41 +00:00
Øystein Ingmar Skartsæterhagen 945e6529f5 Fikset feil i Purchase.__repr__ (den refererte til ting som ikke finnes lenger). 2010-05-16 18:36:10 +00:00
Øystein Ingmar Skartsæterhagen af9e8893df Eksplisitt konvertering av input til unicode. 2010-05-16 14:15:36 +00:00
Øystein Ingmar Skartsæterhagen 64dcb9ecf5 Importerer readline. 2010-05-16 13:30:25 +00:00
Øystein Ingmar Skartsæterhagen 5dbf13ea68 Litt bedre formatering av y/n i confirm. 2010-05-16 13:13:58 +00:00
Øystein Ingmar Skartsæterhagen e162f415be Ny meny: UserListMenu. 2010-05-13 18:25:19 +00:00
Øystein Ingmar Skartsæterhagen 9199da6c13 Enda mer mystisk brukergrensesnitt.
Brukergrensesnittet er forsøkt forbedret.  Forandringene er basert på
observasjoner av reelle brukeres handlinger.

* Buy-menyen har fått litt ekstra magi for tilfellet der inputstrengen
  ikke gir noe treff i databasen.  Hvis strengen ser ut som et
  brukernavn (dvs finnes i /etc/passwd) eller kortnummer får man
  spørsmål om man vil lage brukeren.  For kortnummer får man også
  muligheten til å assosiere kortnummeret med en eksisterende bruker.

* AddUserMenu presiserer litt tydeligere hva det forventes at man skal
  skrive: at brukernavnet skal være PVV-brukernavn og at kortnummeret
  kan utelates.

* Menu.confirm er gjort case-insensitiv, så den godtar strengene 'y',
  'n', 'yes', 'no' i alle kombinasjoner av små og store bokstaver.
2010-05-13 18:11:31 +00:00
Øystein Ingmar Skartsæterhagen 5c9d73fbb4 Restart-kommando. 2010-05-12 17:42:48 +00:00
Øystein Ingmar Skartsæterhagen 302f5fb7fa Fanger TSTP-signalet (^Z) hvis konfigurasjonen ber om det. 2010-05-12 16:49:37 +00:00
Øystein Ingmar Skartsæterhagen 4cd817c70f text_based.py er markert som executable i svn (se `svn pl text_based.py`). 2010-05-11 20:18:15 +00:00
Øystein Ingmar Skartsæterhagen b5785d9a85 Ymse små forbedringer; fikset noen feil i Menu.input_str. 2010-05-11 20:12:32 +00:00
Øystein Ingmar Skartsæterhagen 2074bd237f BuyMenu spør om bekreftelse hvis man prøver å avbryte den etter å ha
lagt inn noe i kjøpet.
2010-05-11 19:34:15 +00:00
Øystein Ingmar Skartsæterhagen c2342397eb Reimplementert confirm som meny; mer tegnkodingshakking.
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).
2010-05-11 19:23:52 +00:00
Øystein Ingmar Skartsæterhagen 29220ebe3d Resetter context-variabelen i begynnelsen av Menu.execute.
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å.
2010-05-11 18:12:44 +00:00
Øystein Ingmar Skartsæterhagen 109db03edb Fikset datatype for kolonnen PurchaseEntry.product_bar_code.
Glemte visst å endre denne da jeg endret Product.bar_code tidligere.
2010-05-11 18:02:45 +00:00
Øystein Ingmar Skartsæterhagen e073f45919 Case-insensitivt søk (håper jeg). 2010-05-11 16:51:36 +00:00
Øystein Ingmar Skartsæterhagen 189af78fd5 Mulighet for å avbryte produktredigering. 2010-05-11 16:45:32 +00:00
Øystein Ingmar Skartsæterhagen 105c625e1e Konfigurasjonsflagg for hvorvidt tracebacks skal vises.
Fjernet et str-kall som fikk Python til å krangle om tegnkoding.
2010-05-11 16:38:30 +00:00
Øystein Ingmar Skartsæterhagen 28d998f310 Rettet enda en fjollete feil jeg nettopp gjorde. 2010-05-11 16:17:48 +00:00
Øystein Ingmar Skartsæterhagen 924008fc27 Lagt til manglende import.
I forrige revisjon skrev jeg kode som bruker modulen sys, men glemte å
importere den.
2010-05-11 16:16:41 +00:00
Øystein Ingmar Skartsæterhagen 39e1d4ef08 Endret strekkodekolonnen til teksttype i databasen. 2010-05-11 15:30:13 +00:00
Øystein Ingmar Skartsæterhagen dcb249991b Konfigurasjonsfil; mulighet for å gjøre programmet uavsluttbart. 2010-05-11 15:04:40 +00:00
Øystein Ingmar Skartsæterhagen 102f6b91cc Script for å lage databasen. 2010-05-11 15:03:26 +00:00
Øyvind Almelid c94dcf91d7 fikset en regex 2010-05-11 12:26:30 +00:00
Øyvind Almelid 7ce51bb0ff ny, frisk database 2010-05-11 12:12:04 +00:00
Øystein Ingmar Skartsæterhagen 94e38d6f7e Hjelp. 2010-05-09 19:49:50 +00:00
Øystein Ingmar Skartsæterhagen daf5ae2294 Litt mer sjekking av inputdata.
Har dessuten fjernet litt ubrukt kode.
2010-05-09 18:24:05 +00:00
Øystein Ingmar Skartsæterhagen 32880031cf Begrensning av antall søkeresultater som vises. 2010-05-08 21:54:58 +00:00
Øystein Ingmar Skartsæterhagen 0b36fa75d1 Transaksjonslisten i ShowUserMenu begrenset til siste 20. 2010-05-08 21:35:30 +00:00
Øystein Ingmar Skartsæterhagen 90283a81b5 Små utseendemessige ting.
Transaksjonsbeløpene vises med 'in'/'out' istedenfor fortegn i
ShowUserMenu.
2010-05-08 21:18:40 +00:00
Øystein Ingmar Skartsæterhagen 2de1b2b019 Menyer for å legge til og redigere brukere og produkter. 2010-05-08 20:59:48 +00:00
Øyvind Almelid d35c3cabea Laget en meny for å legge til produkter. 2010-05-08 20:30:32 +00:00
Øyvind Almelid 09bf703a35 Ikke så mye nytt, kosmetiske endringer gjort på Charge. 2010-05-08 20:27:14 +00:00
Øystein Ingmar Skartsæterhagen b648c27473 Noenlunde fungerende opplegg for kjøp, ymse små forbedringer.
* 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).
2010-05-08 18:05:28 +00:00
Øyvind Almelid b9f5c39a76 endret litt på retrieve-user, tok i bruk nye hjelpefunksjoner 2010-05-08 10:29:03 +00:00
Øystein Ingmar Skartsæterhagen 9b222debf2 Lagt til diverse tant og fjas.
* 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
2010-05-08 00:23:21 +00:00
Øyvind Almelid f71ac4d348 bare tester 2010-05-07 22:10:22 +00:00
Øyvind Almelid cae7e001e3 morro 2010-05-07 17:33:49 +00:00
Øyvind Almelid c7c7498f19 jassaa 2010-05-07 17:32:39 +00:00
Øystein Ingmar Skartsæterhagen 95285be342 beskrivelse av prosjektet 2010-05-07 17:06:26 +00:00