From b808b0017b8a44d84567b1d3dcdfe85d5ff16931 Mon Sep 17 00:00:00 2001 From: ScriptSorcerer20 Date: Mon, 30 Mar 2026 13:22:04 +0200 Subject: [PATCH] implemented new model for database, new routes for save. Fixed logout not allowing post requests --- app/__init__.py | 1 + app/__pycache__/__init__.cpython-311.pyc | Bin 2405 -> 2477 bytes app/app.db | Bin 16384 -> 20480 bytes .../__pycache__/gamestate.cpython-311.pyc | Bin 0 -> 1108 bytes app/models/gamestate.py | 11 ++++++ .../__pycache__/login_routes.cpython-311.pyc | Bin 3503 -> 3515 bytes .../__pycache__/main_routes.cpython-311.pyc | Bin 3910 -> 5694 bytes app/routes/login_routes.py | 2 +- app/routes/main_routes.py | 35 ++++++++++++++++- app/static/js/dashboard.js | 37 +++++++++++++++++- app/templates/dashboard.html | 3 ++ database_setup.sql | 8 ++++ 12 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 app/models/__pycache__/gamestate.cpython-311.pyc create mode 100644 app/models/gamestate.py diff --git a/app/__init__.py b/app/__init__.py index 5fd7acc..ddb86b3 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -20,6 +20,7 @@ def create_app(): login_manager.login_view = "login.login" from .models.user import User + from .models.gamestate import GameState with app.app_context(): db.create_all() diff --git a/app/__pycache__/__init__.cpython-311.pyc b/app/__pycache__/__init__.cpython-311.pyc index 7124496d8c86a27c42540541fabdbb5374b3b83e..3a6324cf054d49b95230387a0b02f799fe94505e 100644 GIT binary patch delta 508 zcmaDVv{smRIWI340}yyboyz<_k@pbW8zu&ZcD9XIH!}*eF*2lZrf}!*=L*y^F*4LJ zED)UR$RslPIuoCeDFY)zi4aI91S}AON_pD~!^Aq+(il^CS~!*g1y;iZ8ETn%H~9vuwXi^LeoAUiv0ge*VKGQy5zl0PHhV^~$^L8- z_2NKh+!88EP0uU_%ETw-l%^IGW#*M=vfpA(EGW3e;p7v6RKx>RStJ4?#6Sc{ zV-YuyC}sx|3Si(+1oG-FuH>Rrpgr+G{YAP!0Zx#r)r<@bKN=YBa`8{)=+y7gZ*YFf zFW58r0ozQW8!XxvP|@T{_AiQNQZ6#gM`T!B6xfd_GXhCXu3M~WIf=#DMa)1GizFxa xap!f}+g45>2*S%!vgBw>X>}gI(iYJcEja zfhvncK?F!o5jT)1W&;umAmC6W1Z3XgN-j!GEJ=+A>MYU*3UGoH&7920zHahC_AiPC zQZ8c5N5oiMq}Y$hG6G3Wu3M~WIf=#DMa)2zMG}**ap*0%XKWh9VIV8)W`3 d4x8Nkl+v73yCQ?hnw%LjGK~Bm7%&O24ggW{UXlO+ diff --git a/app/app.db b/app/app.db index 479ce3a3ce8b1227654035b3a039b314d6429240..d8d2fca1212c056c3d10a85c44c6d47bf2a8e670 100644 GIT binary patch delta 500 zcmb7AO-mb56rBl1QJg#lB@_{#prA03cjvvC_a=eDL4;y&ofi(AbM8H7al2i+dtv{Ynao?3^?>Ke{dVbe-dZ{Q z=b$@l$hoo#J#>Qx&edh_qf_bChDM6>^Y%~GN#v0^NLpt9xRZ4LWBJv395rIxh^n<1 zzh3nJ6z1&x{$-&^WIOqxaU=fRz?)kcwre#PkBzq4+Tfk2zWOPuF9BJ8S@vg9v2V~+ zZfyCwSGb)ximmBJ(>u9XaE2J delta 228 zcmXxTD^3JK5CG7g1U zL4x5WZ~Ew_se3zFEsQaTfB$vw=l*zMF1BAs!;d-WXVcHa=djzamP5av`|suJ?aTGu z&E?frp5+1VpB_(ZYA8;$5;bWKNuv;PCRPWWLkldKOSM``g(j#u=YR#!tLIn?*_1Uv zsI@tem@?OBiL@XC22I|gFmerrAfA<`!ZBL*RT6^}bk?P{^=nHbgiTBv>v!Y$3lDWX A82|tP diff --git a/app/models/__pycache__/gamestate.cpython-311.pyc b/app/models/__pycache__/gamestate.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..02fc1f9e2bb7ad5c99298bffc0f3636e79837b3f GIT binary patch literal 1108 zcmaJi(Qw+;d_FH_Gm^T}6FGHPz!9><{19Jd`}8DzX@6`&F$qZW%9mR>Jq z^58GA;$y`vON3PYfj!Am1BUWh?@1$-k?Lq|vOc{#)s`kY(nMF9D9`l5w<_7H*5G#n zyUXoxyc3Rh!}0RmLGWf}raE8C*7LjGb}-fn#=5~+`B_iCQJJhhsIAmq*H;?Wht>Kj z@Z@+$j(6pFIe8GdT^p&7HYRr-e&P4U@A5bKYiK{zjwCvfL^qNszhK?E>q=dW`Y0Nl zvb?6Nr42=Bk!7>)#v<9aC49{zf0 ctUdf4c|`8<5xP9oB+!2UH}m|t!rhnf7vUZSivR!s literal 0 HcmV?d00001 diff --git a/app/models/gamestate.py b/app/models/gamestate.py new file mode 100644 index 0000000..d68aa08 --- /dev/null +++ b/app/models/gamestate.py @@ -0,0 +1,11 @@ +from .. import db +from flask_login import UserMixin + +class GameState(UserMixin, db.Model): + id = db.Column(db.Integer, primary_key=True) + user_id = db.Column(db.Integer, nullable=False) + + board = db.Column(db.Text, nullable=False) # JSON String + mode = db.Column(db.String(10), nullable=False) # queens / rooks + + created_at = db.Column(db.DateTime, default=db.func.now()) diff --git a/app/routes/__pycache__/login_routes.cpython-311.pyc b/app/routes/__pycache__/login_routes.cpython-311.pyc index 1b6cba17cad548f85c93d767e1173fe1dfb453fc..60142fbac202d7a59c2ad6e912f83c4bf4ab1ffc 100644 GIT binary patch delta 94 zcmZ24y<3`hIWI340}xopoXWg3kyny2WTUz?BToufI^!DdWlRhVtC==?Fsg7fI&9A6 o;bG)i;I_b`LGB`>&J{+T$@RPv61qUf2Nq@^!2lzQG=T;J0Ez_{ivR!s delta 117 zcmdljy)3=FFoH~TTFaC2D!*&mo085wU( zp2#CLc><5<{z-q=9lDSYQ%h*&NoY_aSNj=P*xsUIh zd*|Hmocs0GFLt?axLghb^6K&1@t>5d?ht>FzuLR^C?!-#C}Rp0sg!Ue)iISL(3TU< zq-)G&wQUJ^(lh4a2v0PQ+O>vdo{*dHmSxPVd2>F4;~FD`D$5+q!CMyUm?O*3yjdL} zV~tg`pHQ_Pt;y7R_4{_IsS5EB>Z0yRZpBkx(s-Y1mHgFNSk7DTfciEq7pS8932oef zZrX$n(pDOn`dc!rzh_0pl?4@Xegp_=V55H$b0xQTafb3XSR~CsI*H zSpfQO<1Jwu=l$$s;U7+IK~yWMEygX$@3jo1*hwum&AMT@(fC&S0o;Brf55dFqqZ;i zbRf7BR79#6;y@Tx7b^6qOQ1SHW|_}8Xb*G!#-x1$+}yVR+}{Rs5#E%er%!9ADC@wk z?XfFUnTW=w(+rg5i|sJ(D_g_3G1dp_d`M3v&S-suiBv3_(D(P%;LjP`91BOR|1L+3 ziRfFh%qqUn%WhPAKv~;-5v3d`$@0wlVQQ!Gm*Wa-_@WvQ_d-9yTh2_?f{e3NYFcOO z;%vB`L1`}l4;wq2?XtCrUgMbaU9Q8p?+kX~nx-9$GwFEhl#cuB=&)90Pea>M!$zyC zzY|T*OS|>x87&6Qn#j-+;Qiw%<2zwrHjN>!NE+uVGKK$aNgB}=nW~{@xO)E0@GHVH zAaB;t7lgF4YDdVFt=i7nt1b8%PR_oQ%n0?)IPyQH3f6$^hI|LK|FKJ~GVu+YgEWvw ztdldvWQuAL!L((7`{Qw1KFJ*K{4u!W5#EnsO|aOvck?#)xb?+F7|_tsqW9_URZ|By}aLaJ6xqV25Dh7`*yL zP_yKL>YE>&9s1GPun?SoW%kgj>RFIsBs=s#ZCY#CvglcJ`{t*X`~`P=(cQl4@|J9( zQ+`N5Jwi1*^rw?Zwz=WUBbP=N_7=oYQ4Hn9(3&XE4c`;}cSV0e3>L*;UJSxw3rCkG z^NrmFwWp}|f{-AvL|Pw;)r zvz&~xw#wlechmr%v*FO>hV#BaW{4h0Bf%>|`ALon=YgDf`q%h+HjR??*fdtTicDGe z6?SIGl!{Acp;2S)lUxCjA{-k86NUwdVN#p&n;A_zr9*Pp&N||rpHX_L_Ev%GI=cCnG(icU+0x$Ltv@n?N{XwLdyIZfzc>V zFM&e-G|eBlr-tvU;ZNRJ8PBWXg1WD$?z^ve-wwSOS=@EcxBaefd%@RL^mP@K?xNCt zBb)g!bN%c`XG;Q+l#)!G4JE=!gKM5Zt~1w^i(U_W8p;P>fT!RYD0&9+_5ondn%BSB zvNUvUxZv$6dV5wIniiFkBs9q-0_q_VoVG`(pexxdT0so0a@Yz#orvnw49f;&jd9Wy ze&$(hW8Rq!n5_xD&&nITwaP(NE5n$>Ohq7JPU9Wd)|c>bt=q}Eb*vK1u$-2wBPJNb zD6KEK(EZy!2p%&DZ9h8>U5u{&yYZXr@XL*P@`PuV^ycfIRkAf-|Ev;kzWyHW$d*XWI%~q{u}|yoc*85l{~W!tbb!bk@)XE?DG(CEme76hR>_R5xM` HTfzMg-o^b4 delta 914 zcmZWoL1+^}6rI^5o9u38(QMHJeT7tbQ-|C2~<`82R4f@>LUyw%+soHxju>GpsK17bS$p+!E7Fk}V z$73Bl!Q-oRrjrM*5+^AawQF)mdy$Dj^I;fX2SAs)#Hs zcgV;3SIXp_@FSX%y^%MgJ-9gy;Dq*sL?5p9BVYwD1b~8dVauqIqbFs-m<5?NW2caU zoTK@AacRk2Solve + + + diff --git a/database_setup.sql b/database_setup.sql index e1be1a2..c2ece83 100644 --- a/database_setup.sql +++ b/database_setup.sql @@ -5,3 +5,11 @@ CREATE TABLE users ( email VARCHAR(120) NOT NULL UNIQUE, created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); + +CREATE TABLE game_state ( + id INTEGER PRIMARY KEY AUTOINCREMENT, + user_id INTEGER NOT NULL, + board TEXT NOT NULL, -- JSON String (z.B. "[0,4,7,5,2,6,1,3]") + mode TEXT NOT NULL, -- "queens" oder "rooks" + created_at DATETIME DEFAULT CURRENT_TIMESTAMP +); \ No newline at end of file