Commit Graph

193 Commits

Author SHA1 Message Date
b1766d1448 Forkortet en linje som var for lang. 2010-05-16 20:50:37 +00:00
ca34981d6c FAQ. 2010-05-16 20:42:35 +00:00
74888a0c1b Litt hjelpsom tekst om credit og justering av denne. 2010-05-16 19:34:12 +00:00
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
945e6529f5 Fikset feil i Purchase.__repr__ (den refererte til ting som ikke finnes lenger). 2010-05-16 18:36:10 +00:00
af9e8893df Eksplisitt konvertering av input til unicode. 2010-05-16 14:15:36 +00:00
64dcb9ecf5 Importerer readline. 2010-05-16 13:30:25 +00:00
5dbf13ea68 Litt bedre formatering av y/n i confirm. 2010-05-16 13:13:58 +00:00
e162f415be Ny meny: UserListMenu. 2010-05-13 18:25:19 +00:00
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
5c9d73fbb4 Restart-kommando. 2010-05-12 17:42:48 +00:00
302f5fb7fa Fanger TSTP-signalet (^Z) hvis konfigurasjonen ber om det. 2010-05-12 16:49:37 +00:00
4cd817c70f text_based.py er markert som executable i svn (se svn pl text_based.py). 2010-05-11 20:18:15 +00:00
b5785d9a85 Ymse små forbedringer; fikset noen feil i Menu.input_str. 2010-05-11 20:12:32 +00:00
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
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
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
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
e073f45919 Case-insensitivt søk (håper jeg). 2010-05-11 16:51:36 +00:00
189af78fd5 Mulighet for å avbryte produktredigering. 2010-05-11 16:45:32 +00:00
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
28d998f310 Rettet enda en fjollete feil jeg nettopp gjorde. 2010-05-11 16:17:48 +00:00
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
39e1d4ef08 Endret strekkodekolonnen til teksttype i databasen. 2010-05-11 15:30:13 +00:00
dcb249991b Konfigurasjonsfil; mulighet for å gjøre programmet uavsluttbart. 2010-05-11 15:04:40 +00:00
102f6b91cc Script for å lage databasen. 2010-05-11 15:03:26 +00:00
c94dcf91d7 fikset en regex 2010-05-11 12:26:30 +00:00
7ce51bb0ff ny, frisk database 2010-05-11 12:12:04 +00:00
94e38d6f7e Hjelp. 2010-05-09 19:49:50 +00:00
daf5ae2294 Litt mer sjekking av inputdata.
Har dessuten fjernet litt ubrukt kode.
2010-05-09 18:24:05 +00:00
32880031cf Begrensning av antall søkeresultater som vises. 2010-05-08 21:54:58 +00:00
0b36fa75d1 Transaksjonslisten i ShowUserMenu begrenset til siste 20. 2010-05-08 21:35:30 +00:00
90283a81b5 Små utseendemessige ting.
Transaksjonsbeløpene vises med 'in'/'out' istedenfor fortegn i
ShowUserMenu.
2010-05-08 21:18:40 +00:00
2de1b2b019 Menyer for å legge til og redigere brukere og produkter. 2010-05-08 20:59:48 +00:00
d35c3cabea Laget en meny for å legge til produkter. 2010-05-08 20:30:32 +00:00
09bf703a35 Ikke så mye nytt, kosmetiske endringer gjort på Charge. 2010-05-08 20:27:14 +00:00
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
b9f5c39a76 endret litt på retrieve-user, tok i bruk nye hjelpefunksjoner 2010-05-08 10:29:03 +00:00
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
f71ac4d348 bare tester 2010-05-07 22:10:22 +00:00
cae7e001e3 morro 2010-05-07 17:33:49 +00:00
c7c7498f19 jassaa 2010-05-07 17:32:39 +00:00
95285be342 beskrivelse av prosjektet 2010-05-07 17:06:26 +00:00