From e0b9553b0588a7b940b7164bc17d2b96d9a512cb Mon Sep 17 00:00:00 2001
From: Sander Linnerud <linnerudsander@gmail.com>
Date: Wed, 15 Mar 2023 11:24:02 +0100
Subject: [PATCH 1/5] Snart ferdig med brukerhistorie C. Mangler bare siste
 formattering av siste utskriften

---
 brukerhistorieC.py |  83 ++++++++++++++++++++++++++++++
 db1.db             | Bin 155648 -> 155648 bytes
 db2.py             | 123 ++++++++++++++++++++++++++++++++-------------
 3 files changed, 171 insertions(+), 35 deletions(-)

diff --git a/brukerhistorieC.py b/brukerhistorieC.py
index e69de29..04bdef5 100644
--- a/brukerhistorieC.py
+++ b/brukerhistorieC.py
@@ -0,0 +1,83 @@
+import sqlite3
+from prettytable import PrettyTable
+
+con = sqlite3.connect("db1.db")
+cursor = con.cursor()
+stasjoner = []
+
+
+def printStasjoner():
+    global stasjoner
+    cursor.execute("SELECT * FROM Jernbanestasjon")
+    rows = cursor.fetchall()
+    stasjoner = rows
+
+    # Lager en tabell med 'Stasjon' som header
+    table = PrettyTable(['Stasjon'])
+
+    # Legger til stasjonnavnene som data
+    for stasjon in stasjoner:
+        table.add_row([stasjon[0]])
+
+    print(table)
+
+
+def checkStasjon(brukerStasjon):
+    for stasjon in stasjoner:
+        if (stasjon[0].lower() == brukerStasjon.lower()):
+            return True
+    return False
+
+
+def checkRuter(brukerStasjon):
+    cursor.execute("SELECT * FROM GaarInnom")
+    rows = cursor.fetchall()
+    mellomstasjonsruter = rows
+    mellomDict = {}
+    for mellom in mellomstasjonsruter:
+        if (mellom[0].lower() == brukerStasjon.lower()):
+            if mellom[0] in mellomDict:
+                mellomDict[mellom[0]].append(mellom[1])
+            else:
+                mellomDict[mellom[0]] = [mellom[1]]
+    return mellomDict
+
+
+def checkDag(rute, brukerDag):
+    cursor.execute("SELECT * FROM Togrute")
+    rows = cursor.fetchall()
+    togruter = rows
+    dagerDict = {}
+    for togrute in togruter:
+        for ruteNavn in rute:
+            for ruteID in rute[ruteNavn]:
+                if togrute[0] == ruteID:
+                    if brukerDag.lower() == togrute[3].lower():
+                        dagerDict[ruteID] = [togrute[3]]
+
+    return dagerDict
+
+
+def run():
+    while True:
+        printStasjoner()
+        brukerStasjon = input("Skriv inn navnet på en stasjon: ")
+        if checkStasjon(brukerStasjon):
+            break
+        print(brukerStasjon + " eksisterer ikke som stasjon.")
+
+    while True:
+        brukerDag = input("Skriv inn en dag: ")
+        if (checkDag(checkRuter(brukerStasjon), brukerDag)):
+            print(checkDag(checkRuter(brukerStasjon), brukerDag))
+            print("Dette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower())
+            # Muligens legge til mer info som operatør, vognoppsett osv. Spør studass
+            table = PrettyTable(['Startstasjon'],['Sluttstasjon'],['Kjøreretning'],['Avgangstid'],['Ankomsttid'],['Ukedag'])
+            break
+        else:
+            print("Ingen togruter går innom " +
+                  brukerStasjon.capitalize() + " på " + brukerDag.lower() + ".")
+            break
+
+
+run()
\ No newline at end of file
diff --git a/db1.db b/db1.db
index 3fb4db475ae04f5d7ade03683014ee148570b59f..c93148d6872c41fe0b6fe01623f48a468a0009cd 100644
GIT binary patch
delta 1872
zcmZ`)Uuaup6#xDv{n8}A)WxQEU3P;yd=hh;WL<*P;8a8{vUU0(J~X4(uI)@pn@xQ&
z6Tz1uIAjkKeGo-(Z>~%yJ~*AA4hKUN91LdthYq_=S2vu(Joig;+e-Z&&gFi;bI$Mg
zopZi>51cdyPMVkdISy^w&hhT(TX)_R#Sw-}xPY(lDc;B1I5O9hdI67iM`b_X)fk`I
z*YqVK@>c#>W4zv&o}TraP1&tw);u!p&(xZYnYfZ!i#DH~_GPyuXr!^<-%tJtAzeN)
z(QMi`@yeyUdy^V<hVSq(-o%Tj6WbGL^=j>8c;^1vzS$}Np2paz6L;NLpYr$iEA2WW
zGu+5c<aXBTwYCF0YQarXXI)O<?BuBvem!)0+@e{b-K@xrH2sPC)TBStapQd!-psY@
za%a~}qdvB0i$C#H==jXNjorKby)nj^#$krTRFn^?Jipq)v{H(ct`e%#%5`{1-bPff
zB557U5R|>j&GL|`gA3YrO<T%pB?*!cOWt7k8D}tu*YG^XyYMiI*qFRQYJNzzoS3E(
ztejGM1C@eDW}w_>be5nFiOiQPUNJBOy<OTNq%Bo=TPwwKU<RG2O%}=(UNJ~UrrZ}<
zlT3Jp%0S*Lv?|^<N3WG2h@<3@DVA?m+A$rX{I-f$4$NSm)Glp@Jo!?kR0>QXBXrgx
z?Uv??m7+(6_^Dk4gr&>pE2Y7F-lf2xQL$jAzQ9ZP2Cw2r9L00^10UGw+KCpF%U7x{
zV@Z|eVRNL3D~B(4RCHP2P??CX@fDG^sf6xUj#-XXN#&ZAL68ZR4PIv_Zx5zZBnUO3
z{-CuH9AvnNukjJy!Rt6k9eo<DR77T?_6k%}PudmJ(pl!XC9R|z4dqqil!n#@x^uMK
zE?Tv}U{{*%UNj`E#=i{KnKY-}aMY^lWeQ3X!EuJ;F;a6H-{L1+Aw6&4AtN)~%8A56
z89G7NI#i+JbpJc-GJrx>5tpk5`&d;~V-h<UKF1;Kp#0m>8j{^ClX19l-8&4;npX&B
z#2c>F$7<s;Bnc%CH=4OU^m!SZ@tgID`glp$cw^km7UK<83dQ^&jb1xGjIt+qU{%;w
z-liS0aWt*@(m;VsJ5Kz6U@&eHml^)SRa~Cy$$gK_T5>LBV1<y<n4r57iwxJXghle1
zhbyIIMhVHdP&}~fB-*%MB93be*XDYv3oucxSr3iTgU50zMWrN)zwu{>LJ>EY#9_FQ
zoOHA)76PXwERc>1*bq@B5NjVoC}oU!Z<MPXeV5NM{Dt3XB<FFCn)4aT5v@2kQbZL!
z>2N|z#f=dWVY3L$>1pgyG|mU-y@KE90-mSv)3_}fL`k9TlgJ_zOw!sCgtoCX6r)`N
zOSV`f@fY;jDiIM?Nd`v{xN6Hy=tZR0mYL%^MN)MZ5oI<+E!XBOqqEH8EJ^tULy(%e
coUQzel7cqO%0_}pn`PmjYn|?-{@a~@0VA=|QUCw|

delta 79
zcmZoTz}awsbAmJ@%S0JxMwX2UOZ3?o`QI_{zuPRR@PvQzJA1LkEDIcv@n)6<f91C`
NCNMH9pb7tx2LMcD9Gn0E

diff --git a/db2.py b/db2.py
index 7e79eae..6574498 100644
--- a/db2.py
+++ b/db2.py
@@ -1,17 +1,21 @@
 import sqlite3
-con = sqlite3.connect("db2/db1.db")
+con = sqlite3.connect("db1.db")
 cursor = con.cursor()
 
+
 def createBanestrekning():
-    cursor.execute('''INSERT INTO Banestrekning VALUES (1, 'Nordlandsbanen', 'Diesel', 5)''')
+    cursor.execute(
+        '''INSERT INTO Banestrekning VALUES (1, 'Nordlandsbanen', 'Diesel', 5)''')
     con.commit()
 
+
 def getAllBanestrekning():
     cursor.execute("SELECT * FROM Banestrekning")
     rows = cursor.fetchall()
     print("Banestrekning:")
     print(rows)
 
+
 def createJernbanestasjon():
     cursor.execute('''INSERT INTO Jernbanestasjon VALUES ('Trondheim', 5.1)''')
     cursor.execute('''INSERT INTO Jernbanestasjon VALUES ('Steinkjer', 3.6)''')
@@ -21,75 +25,93 @@ def createJernbanestasjon():
     cursor.execute('''INSERT INTO Jernbanestasjon VALUES ('Bodø', 4.1)''')
     con.commit()
 
+
 def getAllJernbanestasjon():
     cursor.execute("SELECT * FROM Jernbanestasjon")
     rows = cursor.fetchall()
     print("Jernbanestasjon:")
     print(rows)
 
+
 def createDelstrekning():
-    cursor.execute('''INSERT INTO Delstrekning VALUES ('Trondheim', 'Steinkjer', 120, 'Dobbel')''')
-    cursor.execute('''INSERT INTO Delstrekning VALUES ('Steinkjer', 'Mosjøen', 280, 'Enkel')''')
-    cursor.execute('''INSERT INTO Delstrekning VALUES ('Mosjøen', 'Mo i Rana', 90, 'Enkel')''')
-    cursor.execute('''INSERT INTO Delstrekning VALUES ('Mo i Rana', 'Fauske', 170, 'Enkel')''')
-    cursor.execute('''INSERT INTO Delstrekning VALUES ('Fauske', 'Bodø', 60, 'Enkel')''')
+    cursor.execute(
+        '''INSERT INTO Delstrekning VALUES ('Trondheim', 'Steinkjer', 120, 'Dobbel')''')
+    cursor.execute(
+        '''INSERT INTO Delstrekning VALUES ('Steinkjer', 'Mosjøen', 280, 'Enkel')''')
+    cursor.execute(
+        '''INSERT INTO Delstrekning VALUES ('Mosjøen', 'Mo i Rana', 90, 'Enkel')''')
+    cursor.execute(
+        '''INSERT INTO Delstrekning VALUES ('Mo i Rana', 'Fauske', 170, 'Enkel')''')
+    cursor.execute(
+        '''INSERT INTO Delstrekning VALUES ('Fauske', 'Bodø', 60, 'Enkel')''')
     con.commit()
 
+
 def getAllDelstrekning():
     cursor.execute("SELECT * FROM Delstrekning")
     rows = cursor.fetchall()
     print("Delstrekning:")
     print(rows)
 
+
 def createSittevogn():
     cursor.execute('''INSERT INTO Sittevogn VALUES (1, 3)''')
     cursor.execute('''INSERT INTO Sittevogn VALUES (2, 3)''')
     con.commit()
 
+
 def getAllSittevogn():
     cursor.execute("SELECT * FROM Sittevogn")
     rows = cursor.fetchall()
     print("Sittevogn:")
     print(rows)
 
+
 def createSovevogn():
     cursor.execute('''INSERT INTO Sovevogn VALUES (1, 4)''')
     con.commit()
 
+
 def getAllSovevogn():
     cursor.execute("SELECT * FROM Sovevogn")
     rows = cursor.fetchall()
     print("Sovevogn:")
     print(rows)
 
+
 def createVogntype():
     cursor.execute('''INSERT INTO Vogntype VALUES (1, 'Sovevogn', null, 1)''')
     cursor.execute('''INSERT INTO Vogntype VALUES (2, 'Sittevogn', 1, null)''')
     cursor.execute('''INSERT INTO Vogntype VALUES (3, 'Sittevogn', 2, null)''')
     con.commit()
 
+
 def getAllVogntype():
     cursor.execute("SELECT * FROM Vogntype")
     rows = cursor.fetchall()
     print("Vogntype:")
     print(rows)
 
+
 def createOperator():
     cursor.execute('''INSERT INTO Operator VALUES (1, 'SJ', 1, 1)''')
     con.commit()
 
+
 def getAllOperator():
     cursor.execute("SELECT * FROM Operator")
     rows = cursor.fetchall()
     print("Operator:")
     print(rows)
 
+
 def createVognoppsett():
     cursor.execute('''INSERT INTO Vognoppsett VALUES (1, 2)''')
     cursor.execute('''INSERT INTO Vognoppsett VALUES (2, 2)''')
     cursor.execute('''INSERT INTO Vognoppsett VALUES (3, 1)''')
     con.commit()
 
+
 def getAllVognoppsett():
     cursor.execute("SELECT * FROM Vognoppsett")
     rows = cursor.fetchall()
@@ -97,12 +119,18 @@ def getAllVognoppsett():
     print(rows)
 
 # Må legge til for alle dager (ikke 3, kun alle hverdager), kun mandag som ligger inne nå. Må oppdatere GaarInnom også
+
+
 def createTogrute():
-    cursor.execute('''INSERT INTO Togrute VALUES (1, '09:05', '23:05', 'Mandag', 2, 1, 'Trondheim', 'Bodø', 'Hovedretning', 1)''')
-    cursor.execute('''INSERT INTO Togrute VALUES (2, '17:34', '07:49', 'Mandag', 1, 1, 'Trondheim', 'Bodø', 'Hovedretning', 1)''')
-    cursor.execute('''INSERT INTO Togrute VALUES (3, '14:13', '08:11', 'Mandag', 3, 1, 'Mo i Rana', 'Trondheim', 'Mot hovedretning', 1)''')
+    cursor.execute(
+        '''INSERT INTO Togrute VALUES (1, '09:05', '23:05', 'Mandag', 2, 1, 'Trondheim', 'Bodø', 'Hovedretning', 1)''')
+    cursor.execute(
+        '''INSERT INTO Togrute VALUES (2, '17:34', '07:49', 'Mandag', 1, 1, 'Trondheim', 'Bodø', 'Hovedretning', 1)''')
+    cursor.execute(
+        '''INSERT INTO Togrute VALUES (3, '14:13', '08:11', 'Mandag', 3, 1, 'Mo i Rana', 'Trondheim', 'Mot hovedretning', 1)''')
     con.commit()
 
+
 def getAllTogrute():
     cursor.execute("SELECT * FROM Togrute")
     rows = cursor.fetchall()
@@ -110,25 +138,39 @@ def getAllTogrute():
     print(rows)
 
 # Spørre om avgangstid og ankomsttid
+
+
 def createGaarInnom():
-    cursor.execute('''INSERT INTO GaarInnom VALUES ('Steinkjer', 1, '00:57', '00:55')''')
-    cursor.execute('''INSERT INTO GaarInnom VALUES ('Mosjøen', 1, '04:41', '04:39')''')
-    cursor.execute('''INSERT INTO GaarInnom VALUES ('Mo i Rana', 1, '05:55', '05:53')''')
-    cursor.execute('''INSERT INTO GaarInnom VALUES ('Fauske', 1, '08:19', '08:17')''')
-    cursor.execute('''INSERT INTO GaarInnom VALUES ('Steinkjer', 2, '09:51', '09:49')''')
-    cursor.execute('''INSERT INTO GaarInnom VALUES ('Mosjøen', 2, '13:20', '13:18')''')
-    cursor.execute('''INSERT INTO GaarInnom VALUES ('Mo i Rana', 2, '14:31', '14:39')''')
-    cursor.execute('''INSERT INTO GaarInnom VALUES ('Fauske', 2, '16:49', '16:47')''')
-    cursor.execute('''INSERT INTO GaarInnom VALUES ('Mosjøen', 3, '09:14', '09:12')''')
-    cursor.execute('''INSERT INTO GaarInnom VALUES ('Steinkjer', 3, '12:31', '12:29')''')
+    cursor.execute(
+        '''INSERT INTO GaarInnom VALUES ('Steinkjer', 1, '00:57', '00:55')''')
+    cursor.execute(
+        '''INSERT INTO GaarInnom VALUES ('Mosjøen', 1, '04:41', '04:39')''')
+    cursor.execute(
+        '''INSERT INTO GaarInnom VALUES ('Mo i Rana', 1, '05:55', '05:53')''')
+    cursor.execute(
+        '''INSERT INTO GaarInnom VALUES ('Fauske', 1, '08:19', '08:17')''')
+    cursor.execute(
+        '''INSERT INTO GaarInnom VALUES ('Steinkjer', 2, '09:51', '09:49')''')
+    cursor.execute(
+        '''INSERT INTO GaarInnom VALUES ('Mosjøen', 2, '13:20', '13:18')''')
+    cursor.execute(
+        '''INSERT INTO GaarInnom VALUES ('Mo i Rana', 2, '14:31', '14:39')''')
+    cursor.execute(
+        '''INSERT INTO GaarInnom VALUES ('Fauske', 2, '16:49', '16:47')''')
+    cursor.execute(
+        '''INSERT INTO GaarInnom VALUES ('Mosjøen', 3, '09:14', '09:12')''')
+    cursor.execute(
+        '''INSERT INTO GaarInnom VALUES ('Steinkjer', 3, '12:31', '12:29')''')
     con.commit()
 
+
 def getAllGaarInnom():
     cursor.execute("SELECT * FROM GaarInnom")
     rows = cursor.fetchall()
     print("Mellomstasjoner:")
     print(rows)
 
+
 def createTilhorendeVognoppsett():
     cursor.execute('''INSERT INTO TilhorendeVognoppsett VALUES (1, 2, 1)''')
     cursor.execute('''INSERT INTO TilhorendeVognoppsett VALUES (1, 3, 2)''')
@@ -137,24 +179,28 @@ def createTilhorendeVognoppsett():
     cursor.execute('''INSERT INTO TilhorendeVognoppsett VALUES (3, 2, 1)''')
     con.commit()
 
+
 def getAllTilhorendeVognoppsett():
     cursor.execute("SELECT * FROM TilhorendeVognoppsett")
     rows = cursor.fetchall()
     print("Vognoppsett til vogntype:")
     print(rows)
 
+
 def createTilhorendeOperator():
     cursor.execute('''INSERT INTO TilhorendeOperator VALUES (1, 1)''')
     cursor.execute('''INSERT INTO TilhorendeOperator VALUES (1, 2)''')
     cursor.execute('''INSERT INTO TilhorendeOperator VALUES (1, 3)''')
     con.commit()
 
+
 def getAllTilhorendeOperator():
     cursor.execute("SELECT * FROM TilhorendeOperator")
     rows = cursor.fetchall()
     print("Vogntype til operatør:")
     print(rows)
 
+
 def createAll():
     createJernbanestasjon()
     createBanestrekning()
@@ -169,20 +215,27 @@ def createAll():
     createTilhorendeVognoppsett()
     createTilhorendeOperator()
 
-# Denne lager all data
+
+def getAll():
+    getAllJernbanestasjon()
+    getAllBanestrekning()
+    getAllDelstrekning()
+    getAllSittevogn()
+    getAllSovevogn()
+    getAllVogntype()
+    getAllOperator()
+    getAllVognoppsett()
+    getAllTogrute()
+    getAllGaarInnom()
+    getAllTilhorendeVognoppsett()
+    getAllTilhorendeOperator()
+
+# Denne lager all data:
 # createAll()
 
-getAllJernbanestasjon()
-getAllBanestrekning()
-getAllDelstrekning()
-getAllSittevogn()
-getAllSovevogn()
-getAllVogntype()
-getAllOperator()
-getAllVognoppsett()
-getAllTogrute()
-getAllGaarInnom()
-getAllTilhorendeVognoppsett()
-getAllTilhorendeOperator()
-
-con.close()
\ No newline at end of file
+# Denne skriver ut all data:
+# getAll()
+
+
+
+con.close()
-- 
GitLab


From 52d7c0ec7b195d730a9e57e568b31a6c37b3d35b Mon Sep 17 00:00:00 2001
From: Sander Linnerud <linnerudsander@gmail.com>
Date: Wed, 15 Mar 2023 11:25:58 +0100
Subject: [PATCH 2/5] La inne en kommentar

---
 db2.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/db2.py b/db2.py
index 6574498..2a44576 100644
--- a/db2.py
+++ b/db2.py
@@ -231,10 +231,11 @@ def getAll():
     getAllTilhorendeOperator()
 
 # Denne lager all data:
-# createAll()
+# All data skal ligge inne fra før av, så skal ikke i utgangspunkte bruke denne med mindre man har slettet dataen
+## createAll()
 
 # Denne skriver ut all data:
-# getAll()
+## getAll()
 
 
 
-- 
GitLab


From f939971a871d0ce9bb2f93b5dbe20a7f3d53e6d3 Mon Sep 17 00:00:00 2001
From: Sander Linnerud <linnerudsander@gmail.com>
Date: Wed, 15 Mar 2023 11:28:36 +0100
Subject: [PATCH 3/5] Kommenterte ut ting

---
 brukerhistorieC.py | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/brukerhistorieC.py b/brukerhistorieC.py
index 04bdef5..14999c3 100644
--- a/brukerhistorieC.py
+++ b/brukerhistorieC.py
@@ -70,9 +70,10 @@ def run():
         brukerDag = input("Skriv inn en dag: ")
         if (checkDag(checkRuter(brukerStasjon), brukerDag)):
             print(checkDag(checkRuter(brukerStasjon), brukerDag))
-            print("Dette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower())
+            print("OK!")
+            # print("Dette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower())
             # Muligens legge til mer info som operatør, vognoppsett osv. Spør studass
-            table = PrettyTable(['Startstasjon'],['Sluttstasjon'],['Kjøreretning'],['Avgangstid'],['Ankomsttid'],['Ukedag'])
+            # table = PrettyTable(['Startstasjon'],['Sluttstasjon'],['Kjøreretning'],['Avgangstid'],['Ankomsttid'],['Ukedag'])
             break
         else:
             print("Ingen togruter går innom " +
-- 
GitLab


From f24ae40f44fee2d033801f576f8a579f83b5b729 Mon Sep 17 00:00:00 2001
From: Sander Linnerud <linnerudsander@gmail.com>
Date: Wed, 15 Mar 2023 13:21:17 +0100
Subject: [PATCH 4/5] =?UTF-8?q?returnerer=20n=C3=A5=20for=20ruter=20med=20?=
 =?UTF-8?q?stasjonen=20som=20start=20eller=20sluttstasjon.=20Fjerna=20pret?=
 =?UTF-8?q?tytable?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 brukerhistorieC.py | 65 +++++++++++++++++++++++++++++-----------------
 1 file changed, 41 insertions(+), 24 deletions(-)

diff --git a/brukerhistorieC.py b/brukerhistorieC.py
index 14999c3..8e741b1 100644
--- a/brukerhistorieC.py
+++ b/brukerhistorieC.py
@@ -1,9 +1,10 @@
 import sqlite3
-from prettytable import PrettyTable
 
 con = sqlite3.connect("db1.db")
 cursor = con.cursor()
 stasjoner = []
+togruter = []
+dagerDict = {}
 
 
 def printStasjoner():
@@ -12,14 +13,9 @@ def printStasjoner():
     rows = cursor.fetchall()
     stasjoner = rows
 
-    # Lager en tabell med 'Stasjon' som header
-    table = PrettyTable(['Stasjon'])
-
-    # Legger til stasjonnavnene som data
+    print("STASJONER:")
     for stasjon in stasjoner:
-        table.add_row([stasjon[0]])
-
-    print(table)
+        print(stasjon[0])
 
 
 def checkStasjon(brukerStasjon):
@@ -30,20 +26,41 @@ def checkStasjon(brukerStasjon):
 
 
 def checkRuter(brukerStasjon):
+    stasjonDict = {}
+
+    # Finner togruter som har stasjonen som mellomstasjon
     cursor.execute("SELECT * FROM GaarInnom")
     rows = cursor.fetchall()
     mellomstasjonsruter = rows
-    mellomDict = {}
     for mellom in mellomstasjonsruter:
         if (mellom[0].lower() == brukerStasjon.lower()):
-            if mellom[0] in mellomDict:
-                mellomDict[mellom[0]].append(mellom[1])
+            if mellom[0] in stasjonDict:
+                stasjonDict[mellom[0]].append(mellom[1])
+            else:
+                stasjonDict[mellom[0]] = [mellom[1]]
+
+    # Finner togruter som har stasjonen som startstasjon eller sluttstasjon
+    global togruter
+    cursor.execute("SELECT * FROM Togrute")
+    rows = cursor.fetchall()
+    togruter = rows
+    for togrute in togruter:
+        if(togrute[6].lower() == brukerStasjon.lower()):
+            if togrute[6] in stasjonDict:
+                stasjonDict[togrute[6]].append(togrute[0])
             else:
-                mellomDict[mellom[0]] = [mellom[1]]
-    return mellomDict
+                stasjonDict[togrute[6]] = [togrute[0]]
+        if(togrute[7].lower() == brukerStasjon.lower()):
+            if togrute[7] in stasjonDict:
+                stasjonDict[togrute[7]].append(togrute[0])
+            else:
+                stasjonDict[togrute[7]] = [togrute[0]]
+    
+    return stasjonDict
 
 
 def checkDag(rute, brukerDag):
+    global dagerDict
     cursor.execute("SELECT * FROM Togrute")
     rows = cursor.fetchall()
     togruter = rows
@@ -61,24 +78,24 @@ def checkDag(rute, brukerDag):
 def run():
     while True:
         printStasjoner()
-        brukerStasjon = input("Skriv inn navnet på en stasjon: ")
+        brukerStasjon = input("\nSKRIV INN NAVNET PÃ… EN STASJON: ")
         if checkStasjon(brukerStasjon):
             break
-        print(brukerStasjon + " eksisterer ikke som stasjon.")
+        print("\n" + brukerStasjon.capitalize() + " eksisterer ikke som stasjon.\n")
 
     while True:
-        brukerDag = input("Skriv inn en dag: ")
+        brukerDag = input("\nSKRIV INN EN DAG: ")
         if (checkDag(checkRuter(brukerStasjon), brukerDag)):
-            print(checkDag(checkRuter(brukerStasjon), brukerDag))
-            print("OK!")
-            # print("Dette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower())
-            # Muligens legge til mer info som operatør, vognoppsett osv. Spør studass
-            # table = PrettyTable(['Startstasjon'],['Sluttstasjon'],['Kjøreretning'],['Avgangstid'],['Ankomsttid'],['Ukedag'])
+            print("\nDette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower() + ": ")
+            for togrute in togruter:
+                if togrute[0] in dagerDict:
+                    print(togrute)
             break
         else:
-            print("Ingen togruter går innom " +
+            print("\nIngen togruter går innom " +
                   brukerStasjon.capitalize() + " på " + brukerDag.lower() + ".")
-            break
 
 
-run()
\ No newline at end of file
+run()
+
+con.close()
\ No newline at end of file
-- 
GitLab


From d382beed0ee297bb8b588284647d89f0348640cc Mon Sep 17 00:00:00 2001
From: Sander Linnerud <linnerudsander@gmail.com>
Date: Thu, 16 Mar 2023 12:11:35 +0100
Subject: [PATCH 5/5] ferdig

---
 brukerhistorieC.py | 129 +++++++++++++++++++--------------------------
 1 file changed, 54 insertions(+), 75 deletions(-)

diff --git a/brukerhistorieC.py b/brukerhistorieC.py
index 8e741b1..91e378b 100644
--- a/brukerhistorieC.py
+++ b/brukerhistorieC.py
@@ -2,78 +2,60 @@ import sqlite3
 
 con = sqlite3.connect("db1.db")
 cursor = con.cursor()
-stasjoner = []
-togruter = []
-dagerDict = {}
-
 
 def printStasjoner():
-    global stasjoner
-    cursor.execute("SELECT * FROM Jernbanestasjon")
-    rows = cursor.fetchall()
-    stasjoner = rows
+    cursor.execute("SELECT StasjonsNavn FROM Jernbanestasjon")
+    stasjoner = cursor.fetchall()
 
     print("STASJONER:")
     for stasjon in stasjoner:
         print(stasjon[0])
 
-
-def checkStasjon(brukerStasjon):
-    for stasjon in stasjoner:
-        if (stasjon[0].lower() == brukerStasjon.lower()):
-            return True
-    return False
-
-
-def checkRuter(brukerStasjon):
-    stasjonDict = {}
-
-    # Finner togruter som har stasjonen som mellomstasjon
-    cursor.execute("SELECT * FROM GaarInnom")
-    rows = cursor.fetchall()
-    mellomstasjonsruter = rows
-    for mellom in mellomstasjonsruter:
-        if (mellom[0].lower() == brukerStasjon.lower()):
-            if mellom[0] in stasjonDict:
-                stasjonDict[mellom[0]].append(mellom[1])
-            else:
-                stasjonDict[mellom[0]] = [mellom[1]]
-
-    # Finner togruter som har stasjonen som startstasjon eller sluttstasjon
-    global togruter
-    cursor.execute("SELECT * FROM Togrute")
+def printRuter(brukerStasjon, brukerDag):
+    query = '''
+    SELECT T.Ankomsstid, T.Avgangsstid, T.Ukedag, T.Startstasjon, T.Sluttstasjon
+    FROM GaarInnom G, Togrute T
+    INNER JOIN Jernbanestasjon J ON G.Stasjonsnavn = J.Stasjonsnavn
+    WHERE J.Stasjonsnavn = ? AND T.TogruteID = G.TogruteID AND T.Ukedag = ?
+
+    UNION
+
+    SELECT T.Ankomsstid, T.Avgangsstid, T.Ukedag, T.Startstasjon, T.Sluttstasjon
+    FROM Togrute T
+    INNER JOIN Jernbanestasjon J ON T.Startstasjon = J.StasjonsNavn OR T.Sluttstasjon = J.StasjonsNavn
+    WHERE J.StasjonsNavn = ? AND T.Ukedag = ?
+    '''
+    cursor.execute(query, (brukerStasjon, brukerDag.capitalize(), brukerStasjon, brukerDag.capitalize()))
     rows = cursor.fetchall()
-    togruter = rows
-    for togrute in togruter:
-        if(togrute[6].lower() == brukerStasjon.lower()):
-            if togrute[6] in stasjonDict:
-                stasjonDict[togrute[6]].append(togrute[0])
-            else:
-                stasjonDict[togrute[6]] = [togrute[0]]
-        if(togrute[7].lower() == brukerStasjon.lower()):
-            if togrute[7] in stasjonDict:
-                stasjonDict[togrute[7]].append(togrute[0])
-            else:
-                stasjonDict[togrute[7]] = [togrute[0]]
-    
-    return stasjonDict
-
+    return rows
 
-def checkDag(rute, brukerDag):
-    global dagerDict
-    cursor.execute("SELECT * FROM Togrute")
+def checkStasjon(brukerStasjon):
+    query = "SELECT Stasjonsnavn FROM Jernbanestasjon WHERE Stasjonsnavn = ?"
+    cursor.execute(query, (brukerStasjon,))
+    stasjon = cursor.fetchall()
+    if (len(stasjon) != 0):
+        return True
+    else:
+        return False
+
+
+def checkRuter(brukerStasjon, brukerDag):
+    query = '''
+    SELECT G.TogruteID, T.Ukedag
+    FROM GaarInnom G, Togrute T
+    INNER JOIN Jernbanestasjon J ON G.Stasjonsnavn = J.Stasjonsnavn
+    WHERE J.Stasjonsnavn = ? AND T.TogruteID = G.TogruteID AND T.Ukedag = ?
+
+    UNION
+
+    SELECT T.TogruteID, T.Ukedag
+    FROM Togrute T
+    INNER JOIN Jernbanestasjon J ON T.Startstasjon = J.StasjonsNavn OR T.Sluttstasjon = J.StasjonsNavn
+    WHERE J.StasjonsNavn = ? AND T.Ukedag = ?
+    '''
+    cursor.execute(query, (brukerStasjon, brukerDag.capitalize(), brukerStasjon, brukerDag.capitalize()))
     rows = cursor.fetchall()
-    togruter = rows
-    dagerDict = {}
-    for togrute in togruter:
-        for ruteNavn in rute:
-            for ruteID in rute[ruteNavn]:
-                if togrute[0] == ruteID:
-                    if brukerDag.lower() == togrute[3].lower():
-                        dagerDict[ruteID] = [togrute[3]]
-
-    return dagerDict
-
+    return rows
 
 def run():
     while True:
@@ -81,21 +63,18 @@ def run():
         brukerStasjon = input("\nSKRIV INN NAVNET PÃ… EN STASJON: ")
         if checkStasjon(brukerStasjon):
             break
-        print("\n" + brukerStasjon.capitalize() + " eksisterer ikke som stasjon.\n")
-
+        print("\n" + brukerStasjon.capitalize() +
+              " eksisterer ikke som stasjon.\n")
     while True:
-        brukerDag = input("\nSKRIV INN EN DAG: ")
-        if (checkDag(checkRuter(brukerStasjon), brukerDag)):
-            print("\nDette er togrutene som går innom " + brukerStasjon.capitalize() + " på " + brukerDag.lower() + ": ")
-            for togrute in togruter:
-                if togrute[0] in dagerDict:
-                    print(togrute)
-            break
+        brukerDag = input("\nSKRIV INN EN UKEDAG: ")
+        if len(checkRuter(brukerStasjon, brukerDag)) == 0:
+            print("\n" + "Ingen togruter går innom " + brukerStasjon + " på en " + brukerDag + ".")
         else:
-            print("\nIngen togruter går innom " +
-                  brukerStasjon.capitalize() + " på " + brukerDag.lower() + ".")
-
+            print("\nDette er togrutene som går innom " + brukerStasjon + " på en " + brukerDag + ".")
+            for rute in printRuter(brukerStasjon, brukerDag):
+                print(rute)
+            break
 
 run()
 
-con.close()
\ No newline at end of file
+con.close()
-- 
GitLab