GZiCMK;x=_s*oyBR!9{nDWnP%
z6;cHX3aJ8lB!Qwrl0ZQrNg%J>N5x1H
z(6}O?Dx?UM6;cFB3Mm3bg%p8;LW)3MxtofSAfRzUKvnK!r(9OP&s<5lgSn#eJ?09^
z?abws+o;%g*%yuL0jffJKv^L@prnu}|YQ!!EkG_C}w3Mm0)g_MAjLP|hUAtj)o
zkP?trE~R251ZZ3cP?d|>DVLRZGFMVAVy>uM$Xr3WfVsS~m5R057me!xD(L`a(g8}O
z0~ARID3A`2-@=}-CK*5@89*f&piDAAiDZBx$p8hC0rF!EPAYDu7BVK$%p45~%=1
zQUMC20_0C;a1sGD5&={a0m>u-lt=_9k_b>B5g@;k!AS$qNCQww11OUQP$CVWNE$$a
zG=TgG3{Db&MiPKZ53@mR|01RT1xo+(A%j!)uTl1|ZkPR+DElu`_FtgvKffn~Q}VA-@~=|zU*0bH
zFH-VfpyWS4z~GeoYn1z|l>3({_b+Xi`xhwp&+|w9S%R)n>aSAjU#8T*M5%vqyVO6=
zpZF&@W&SE<{$G`Rb{qZX0}vfwpe7gP+&Iy+WvoQm8TT<
zLH9=dUH|Fsp~zeR<~-tj$+;9O@$;OS&;ahUud}ye{k&>-A^*M0+Gd?+EyJpJ!F&vv
z{0GfZ^9XY{GiN+%d=0D88;m+K*}v%bBbU7dI|Cl5&(NON?$$o5ov)p!CE8^5_v)SM
z)#|zG@oGhN%TJf@C|^}Rr@XuzmhIASOShLkS=v%Mt`wB4;#0-jidPoTDlRR~EgFR<
z3bz(MUO1z0L}Azbi}?rg*XJ+GugTZ*-MMFTcjT_hot--_7vwBl&YM5p+Om?%6O7
zc~Jy5@4%Z7tD(0>fXb5hJ^&Pjevo=i0V>%$?)U>xP_6liw_1RTl2=&(#J0&uy;TBK
zki7XJVf#T~g9~q^0Ocibd;kbLqD1Ln10Y?k+wB?niR>6KSRo^>}*Jo)nq@Xy!
zHX(bS%0Oz}Qs)Ibsj%WFsPGg~VYy3MVdUc-9Nx(SR5GQYpq9q5cai`VXGuYRmGN<+
z0Le*8w-fi!F0ex0u|N-IGn^;YouOgU*$9Hq6|p350X
zt()r3S|O@L*j&atPE;uGX%RNY@hjf30#uTAM{Jnlhmp5TfQtRnOAYYeksMK?6Gf(Yzu<>y?7yY7__FQ350%kRe|762#tO
z0g}@cMrl|}y+s04k`ALVOsciOTPQ$snnG;3g|2+00Lf_z{WwZe?+5{s(}W#d&`$>z
z00f#0DNRAO68p)(;jAL9u4^)uu=7k(3%$em!E{xZg5r?PBZmr5IWGlOLf`kj`2r-L
zwt^_Y`(V981gO|8tts@Yap)Z^Km|t%@~f3fp?81)l_p8gJFKzcw7&q!Cn`Uv
z#!1E7Pk;*Ynm|(!dix4cUcx1|MFLG>ZJ-7aXwoE;88Da?akMJ0NYx}<0+ht)PhKiO
zs-$@ViqS1YFA<>fmNH(9NrZDx>$QuwKIa_Ifpd%RQ
z2MBDHq->>rm|zm>;}sP($$*cC5Gti%;LQ;r*-Qmcf*WYnn=L@{A&9Y@`jIzFfMhcj
zYQoNP0PP|`MM<;=P=w9e{5@wfkXkPm=FO$(QIT~(>HABb%0LNuTyK*c`k
zDPdPg^cquuGqNf;W;GqaD+P6=eDcW)do|+j
zGk~`VGK`$6s8+*nlLL5tAj8P}Ra6TTzczrE1~N=ZN_kX`t3fn?7X~tn{BDR00vYH4
z-Vewya-J~V25~e1A&X(;G$GPKQ(9%b+NjK
znlC?E{%ZNX<T>c&T<@q3Q=AOuXC->3Zrrcq@0*epwqc%nUxq7dxYXTL=HB5SK
z5&QSbIww$-N)-`%TLk~TWl4Mt6y9kWre0e_|GgzioCy?O1R0?&5&rke#xhWd#cDWv
z5&!qfSxXR%VOnU51fW;WT7q-0_=9cA0MvT#&R9!8TFv*`A`_S{XALtSLNc!{Qi18R
z8!UGEt)Mn=D{_J9vOol=2)meqHIWQVmrZ~`g-IpAm5OX&y6koVR1hZ#P$C_eUXV-?
zK>1;X^)-(e_=g4mz98iwrbL}Jh*XDvoD?uUD}DKk*(Jv#~F
zP$jl64neWV5PHgzTmvZVR*cNGEmDLYS$qOi$TnT}+9F5jk&}n}I<~g<+9FBlk$1V+
zk8$Jk+9FHnktI_p^fXNP(LkHhgj~Hx68ZyF#RkpjYa&6Irb%K@pwRHptJ)$%m?p~*
zfQq9k0)@6n5vIxe8qNv9s@E1d!ZcZAg1SQFf*?X93DaaU22eo_s-f2wS;90qU6Ad3
zL^*AdCQOs}HQd;+d-*_H4I@qQ}L9KW1Y(fk1=3OL1ZILicmBqg4P>9jaCLxhAOqF-C5DGABa*;Aj
zm3J}>qPPmyM9wf(KA|CMg6`(EMba=;ej5m}M|gsfOIbs%K2_eyAeL3xgeLNZsWK%t
z9YTM_9_oW_kuXf%*@PBgredR9WDH&M2`xwh5%z2&n_$WR?P+qu$#hK(dhuP&LHM1_n0+
zgzRh5yyX0jltK~1VE4}A^|`V;C+b6JgL}`J0wkNv07A5iuvOaoSucf{!Up810I8Dj6g45*0$U>jB=1`Y?GprL8w5x;g`p-y_E1TN1xUUa
z0GW%et*sXz`B-GH41hLxx&X=IS1cMMYmK787C>OjnYVxEz6F7h&713ZeYU)B#W=B)
z^8fwSlHxw%ei`fk>)ieE%=oi-@_ieg-(TT`PTBq?-UIkSd&EB69>5d$4_P-@m*MXK
z4#YF`&*Ay=PvbfKW6imyZai*$%lL>fhNsYXGZg(1{mc60`Z|4oeVXIz*ChIA6=GG2w>x=TMWo*^
zi^G6IK#dq>tBCabW$6)6KJN8ZZ>xy(`(=?nUL1#ai$SB=DkA;W;A*KtUzI0$E$c_BFgWREp`IM!X0F<
zBFyiTlZB^l*pm`%5$E^GVlmVOZ6-(t+al2K>zsiDi{v7PULqp>IkL4opz!{=Do`TS
zpCd~qfr7lj6bTXQ&yi_lK>2ZsCGxfi_UFi13u{==1xiHwbBdCrt~!J#3X&LFl?eCe
z$XUbkL5hT}E#mz-@-Bu|a&SA)rhq?JpCdnD9QtfsLxlRX<#gfMkpK~MTg3Xa&E|5&!JY5kHO#NtcN(BIKVX6UTtU!-sgnr@fXZ2D4<6B2Y~4
zL|tnHO3oTv-^Og$ZVHqvM?zgtdDszG3zWQ*1wPhgaKu#tC1(vDOQJk
zNYZ#_s@(tzQpGIkJm#l(;t>MRX}qdkbPZcP6Cxf<~1ZeV81gb1~`~#;2
zm5@nUCkvFEE@(1%@X>3ZBvA5B=HtXFn4?YdRN;bx7k5PIzs1WMM)fU2^!uEF;4
zKq0N%WnS%kx(n|(X9El27mszdSMVBV%AW583YrDG(&Yjr>tsMhHJW{n6DZkC22_YA
zBybJK3Y1Lb0Sb2#)|$%%O18od6nmx#tSuENnaqPlUp#eP!7yJUP;%BFhoPkg+s6O}
z)@F7dny3-$x$I7NG_P@nOiTm{kD#;T9wkt+z6KQf5EB3w3zY1x2^4N7Y{7JqK*{UQk3pK~Qm5L{?T@kYzz(<$uq24iL!c`Q7K)XP>=P
zKk$8%nfIKkde5c4?>*J0)*ip2J>DvxH9EGvIbND7%
zfB7HqnZ17Q@+0aPJm(S%f7SFe6=#RN-FD2!%}b0U^n3A(^pi4>GLSNmGLSNmGLSNm
zGVs5Sfl*EEix*@%J?)Xrt@CzHY~0@7xwAbwvSGNjX?$X=wV}QF)nAsDt{G~q8!9hb
zb>z@V<;tsn*b7}LuU@tHpDN{rl~?Pk42-H>4!CoCVsmR`{51#Ex*qUVwCsR;{dM5N
zBa3R^f(4m9YsZ@#hg+|n^s7Iq;xOwPN30ln{mHjCS8&1WhK?RuQ(m=tU3t|BD^`?`
zTeECsW6jCs=eFx9Zyp8u0alxC0n>%;17UTaezOK1mhY~Htf6FRcMw;7OmGX&=HA|0atXb%X;lN%rq8E?-e*mrX
zx|e?C5@ap=A8Nr@YIK$B-%U-ZJj28RRU{H_hb&uBO?TZ!X
ze&-rz#Hl+|?MLk!@Qd`5GLSNmGLSNmGLSNmGLSNmGLSNmGLSNmGVq_zzyVrO>CcoJ
zM~x1*C$`U)<*Q**jXcj&i^{N
z1W&pzZH^6(PM4xleUj{7C@OtGuiex>ZkHSvBykYd@y09lLNIE1ToT4Udkm
zXm50-mDj=`j-y;riBV|iyzv&EhuU0j?AS5f-qak&6Hz;-Nz3_BHK`q#Eh-C8Zr#NA
z=vccsT=pF)*o#81c3|dpU~j$@T#dpg(b1Ng^N`}a=sf5A-g(mbC+AV;5&RjX1%oLc(Gm~Q`o6D6-Z2iAn
z+N?O=cK*gW#aU=SZ-3K%r+uou(E7dgRqJBwcx#^dTk}ii9&@ER(|FYQv~jMn)Nu5l
z>DTJR`eHp_`a$W#s385M45SRC45SRC45SRC45SRa!a!73mASL~ON|xn;o)5eub5ch
z92?oz8ab-9y*b?4cWtIVh$k~+->=SBmD#<$rN&9^=IFVt_WI_?mX+N~RD)_%4d$uJ
z{9YVsd2@VgbF4kmT;Ckt-TgQLo&b%#V6Lk4%|)q|DAGcS;f>9S?UR(MMnN1^=cr0=
zA4)ZbTg?+jwzS5&m#BGuSgY4(&Rq9eb1}LUTqc*
z#!hiXbF8^;Y!s!owYnb<%YOAR_WDt%pB0+ev}@hgc58T&B2}*%fb*H4f)ybu*0x%c
zTvjqzulZ3__xsSieQ2hmhFjaWw@0?D-L!RLOx{q*VB*)JuwI)Xu7{Ba{BWz?orGjC
z_WWu!2zynfpW3N4jHX?S?FL52M|O3iAsNKdVN?xk(@~6F)3Tk-jjiD|6Prhe&+1+%
zsE2hws`cQaSWjBj9B+c{=9tyE%d)TQ|1GKw&pB{5Yt4
zkv~ySb({GD(L>2E8Z>lA1pShhn|&$kCDZw&tpdt?h~Kr&kT@kzcPms?tOK
zq19Y9x@EY%ty_tBupUPBYTdJO6vo1`-Hf`G?e3i}9!$boweANN1}*PFBja0JyH>Pt
zf?fMvJQznw5QKrr`VbCuVtX4c@nToD-OcW&7bUf@p41Ew$0imcZbf_h#^$E2-3x_r
zy;k!B9oNJPt!xit>w@JN@{@G(c#sYCn(vixD0YI!Hb+L9$F$nr`&~R(t4FmYscNi=
z&>K!hk@mJ@niD(5IC|`kTSr>wHitKNzal^I(8K*Aim@wN
zg%N)A*u==@$(qRvF{5~c1(fMwWk%0w4z)LSKSnjE<9e!jH0xC0mo~ST*KM6Ra176k4s31_tYnt&3qZa
zit`2MM(5Mcwa&+!E1fHx_d1t3mpFTzw>i6=31^41%{dDdq@R?5l!26il!26il!26i
zl!26il!26il!26i|H}-pmG&|-^O>2)%v@&XFf*H(S}IPZ4e;k+Fy|GS)>&UR;u({xUCPH2WMabu#t~
z_OtfC*uTN9fCoPE80t^IfQhwRJkciETN7uj#I&$ZuVZ?jwW
z2K!`tt-aDd+HTl~+M#`jJz%@`T)WSnY8!UJddd2O^^EnT^|;Y~bH-D~Z;W3WKQ(@2+--cz_`2~W<3{5;
zvex>hICtq3_Y(qMxIW>Ra`ueu}^kaNqe7{^_m|#<4v>CQ
z22uu622uu622uw8%NZ!dz!g<%2V9^3wOWc?n&-`%iTY7_XKypVQ#MSPuxAu-LJWOjJscP_b7M2
z#cfa875$=A@-OsrDDR&QZ_YiZlm7j3;Aa@UN_hasU#NGYe-N)U%%*|4M
z$lX2M{eZi>x%)nM-{bBs?!L=hzw#aKzRlgYxVw|PZ*q4BceitQ8*?+2Z*cc@?!Ly|
zSGl{DyRUHfW$tcau21SQv
z$&QhI6SMXXvZG{2$ZjV)Om-XDv&puZwYHMoLiQ}OEwY=*ZX&ypY?E2@OtKruo
zvZs+fmFy{GPiEFQiR^l^Cz3sZ>^ib*$*v)LJhS?7WLJ}2MRq0G6=au_J(lb;W=qGA
zJ(}!MWQWKeNp>mOBgi(G)s~Pwoa`IP9!B;JWDg~~m~5R{H6a_5jmU;%1F|);K3R|1
zVwLP6WCzI}O!gqM2a;Vxc7WN!Lb3;t-Jk4!WdDM!OSVFG0kios+4*GWk)2C+4%yjc
zXOZn^HaC-OAK4jXd&y2G+e3C5*{RHCr;v5X+GH)VCRu~5PWI1T|L6JtRV@F%+xdty
z>MX$<0Dg(=e2;yCy}$LG^&RBWXIqC_x_Q6(VY6ipBD?*Dafz|Un63XxzaH7=;ks73
z*ZDW71y?w2XR%}0KSOT+R(rKwww|_bM<%}63ay;^ee-hj4D$fw#;&rgWF{6tsr-IGdcnDcBD{892{gX3w(z*}4^Z{2A6E=8NW?=4Ix3vy9C8CgXhL
zNW;<}&_9aI*DL+8bcgc+XILR6?pEbW`UThv`
z_9HLy9j
zJM)X?1?Dny8nXJUjqOIHzodUhe>bvjxAfc6=dowvXPpb2)Z#0X51Na
zX4sG0UxJ=;ihZEt_!GK7bq&E3ltR61@a2%0y%|rfvob!Lavlm
zNEXnzETAeR3ltTS1ququ0(pgGft*6JKvwxZ6(dzZ3^qhh28Xj~Cc6;cF>
z3Mm2wg%p9jLW)36Aw?jo+(pGm5YV_FpeiH?6crK#3JM7Vd4&XloN@b{g%T$cy0FBE5szP!=Q6V{?ppYDpS4a-XDI^DE
zm7Ay-sR0^S15}07fTBWbKtUljAg_=bkW)wv$ST)SF%knbE(WLyi2+50#DIcAVnALY
zF(9XWoL}3=s2FJh8rK3;g|vX8LRvsUAuS-UkQR_rNDIg+e@n$k3edO|peiH<6cv&J
z3JOU9d4;5aoI+ASR(THQk~2`DI}1mqP`0&)r|0a@izDn>$p#)SY?
zAt9iskPuK%NC?O)Bn0G?i}fkc2ji2ykg0kRtzoHPK9Gys(}fFfxC1=0ZWqygke1IV7j;3NTPBmt--0Tf9B
zD3An@CkY@&5g@`|IbnWpIyx0l>TdbrT;}r{|l7<=PCWqQTm_t
z8Jx0zjk14ruk61-*?*q0{~Tri*+mRa$-hR)ze>q}aj)b*Psx9dlK*Ul!72CGDEC(>
z_b*cJU)U@6&r$B5<&XNa1YM)lU!~N)NU48;Qvdv3sehI~@lSBd{8h^QibI&r7$KGyUX`W}U!>YG#JO(Y`L&m6atg*k5!JdF$#H#dm
z{TSrL&zJ5meWr9tX>;lD(k$&+?OyHE+Qr&N?J#Yo`i%Mm^*Z(K>Y3`H>Wt#k#qSqC
zQQTA9P+VN>Ej(5DUg4TT2c0%4^yGh+|8D;3{CWAc`Gxsh?vdOrx%cHpb4zpcvd?6H
zko{zKPj*9gake+}ROZgiRhjcMCuY2iiOYHY$K6s?GMP-nQYCL$z}6jp9lL$FX9-YI
z-*;0Ufbe#Ru;#V|s33Vc1VGieR*l`w0+gRCt0}I>Nf5i61Slsxr#PwOcI%2?K1x;+`Qu
zMJW++z+S%Lo-RNIOL{o$g#$`Y6QI20#UD7FABS<`o+?0H*z&-;=bj=!S;_k`P*W9e
zyr>VH3=r5dmxSHfit2%1_uZ3teTFtmcKT85dv$NodInM(hPuR?q(U$o*WD9Eg~c9e
zg+V>8h3*LgR4}BVT2c)ncbx#qyIAB$ahSMk1xQX>v13EZUuB&R6=mqF+rAwXSd@@ipHuQUJxO(i)^sHa-3EMXOC4Na4=R7)^@C+^|=
zV47NzgS-US_C^6JW~Cs^Tj2XJ0g_K!H8!?9_YDG+mrkWMY{wRO?x6ydlg{6@u!bG5
z+{FTvElSTRU^|9Y>HvWyP1hi)W5Md?h6
zn+`gi8wyZiitM~G86@?Z8wikmqVkhk9QbZcfO7JhVvK^s^#w?NFT|#0)p}g<00K>_
zbTY%MkiDSlR(VB5IhU9y;@EQ!5g=9Cygs6VBz6Y{s5n*1fQPN168B&Ml21)2h>f}2
zg9Io)M^=+puVEuD_do%X)8r+77{~4+0m@46x!CY8smB8Y0AW5aE{VI(=U(L1F#Rs%
z^%XSf?HPQcFSrK?ken^guh($;`wNhKhQb^cd4ap10Lj_HHhlpm^1l$Ed_~3?`u!xdK#>3}$RahR~@NxN`(Z#uh-4SFeWdYypzZ
z=Kx{bv?y?A36P8}fNBUb!%9CuU@I?S3mDvB!q}b3E6Qn-0S{0W^J3NQ6Cl}46%At2
zPyEQ8AwaSr2oQqpsOt6#kZh&`2zTOI-JLE#c}cVfP#B@-E$U$)wUNs$IYgn)z8w%)
zZ0Y9*?le)MoGt8`hch~kNA46}UsjtbJ7|pX%d5JM0I8BGDH@E?
z4ZXNxGmzGh-Ee@3tJwR{wM0eot`qHlAw=P`)fZr2xae?ivCl?^-c#UYOl=0g{sy
z`dZqpV{znWCNpn_KlmXPwvhGR4sAr$bE3f?BjFmkG*n1xjpygra&
z(E|&%V_-!kD8!g(uXn*59h1r2D#A
z`gQ5crT3LaO2?Ec+Kbu)+6~$s?F=o^rm4SGzolNK?p9Aw4^d0SM~h!AexUfK;_@PH
z4uyvcHy17|Y%LsG=*|Boe@Fhx{JHt#^9Mq<_(kq>xp(Ha3CxW!E6GfSCnJ><&~M`_M`{A`O@+n*o7hA^}(vdB98=Ye0qdkhOqF1ZK)u
zV<->G(LjeX0ktu+J8QrO*mM~!FEWC@F05gDW!Be3O3)|kYp4qmPCa%zA}8pR1ti$n
zxE^?jBFHDKM~ZZzSKilfK)(jMM841~
ziGXoH4;yTw6-B}@T_(jQ*q;|t1Wt=GhD>9+d}!jW$k;d8?TB1qx=dF@T~U~@X-^~z
z)8)M@3mbODAI-L@}Y^nuoGk_9g#0g&q^m+%xBnIdZ0rIgW8xr
z*@PBWW86L6jz}DOWa?rvh?_BDZ?_{dhaPz+!%pu^Fzblap-0}ypetgCxE+x@^vEZ)
zAV3q~rY@3)9{Ft`z|PxjVxjCI)98_RvcN|tLkoz!p+~03;u@iKRl|XfNE~`5o6u^w
zVL%7&h|FP{d_t?mRZQM)N2CtZe^x*enugp#v{^phoc9V8Njl22$*5PW1C
z9i$R0dz+fyH|N3uJtQvZkjN#dDw*;KR5eK0a6&dgsH|ko3!Cj@L;DE#PUI6T?V38-
z0QF+rW^r7F*EmHM-J(WBkq}tlCP4Bq4RHjPzudP9kZe5;HPt-iFz#CfNFJnl9#;0M
z?wbWDFL^mTYO3N67P{vPki3^c_Q&BC?PeggF(td?Kx7*D$eN(a_Vf=cyMTobGDUh9
zfU*Rcr*a;vPir_5T{}TAjdVS6&*dlPsM2nTz7M&`Jx74#WL15ZuDcTgB-6EVI4?lI
zcgF=tJ|;2NLg+U;1xPmiC#v
zlKvSyi~b2b%YT{?8B_2)`8V~C=wo;yeScjkJzTmO-zz`6G*p_e{Xx55yB@3mO&low
zqzt4Cqzt4Cqzt4C{7+`Uy--B@Wlf@w)**b=NbeD$epwce0fj6C;bcd|`ej*q1XPSD
z7fF-|_RF$hAE+>)xf@Dv3D)I7tubHSH)aDUhGd5nOT_x~Qv
z^CZb64v4i6Jlxq4A^%)CUF?aoDh{}XCkAunBNF0Rz}8#N5-6ECRv&~c5MzbD(-J6|
z%mWmjOk-;#n*~aiQUZl+naN(81WHa<0I85&<3@p!cd`Ia??mxHrwJ7Dq`8x=#~}j>
zS&e7%8t2Hwu{z#nhrW%jxIv&~k|I!$*_fVkhCs<#gPLAtS9-cY$z&eXg?9onrTjF3
zl6NvFXi*Ik>!|`IXAN>3q(`@Nia^OEMH~^8h4o73WT2o}%#qGxP~)l|di6=Xs@Zb7
z@YGk#))m$Zl)RGxL;Bx|0#%ee22zK@7Dw#naDqU|>B3v{e75kkPN3wS3{qkpkIi=0
z3Y45Kw#3esRo4iVyp#EOooNCs@pz!n$!0I9UqE+q*_@3|%bs!W9LH;%C40^jSBeK-
o@WfJQwLr-`nTIQ2isLGQlFwuwm}PVJN`aDzJy>Rr5-4c@59Bc`i~s-t
diff --git a/view.py b/view.py
index 79e22cd..9e3e55a 100644
--- a/view.py
+++ b/view.py
@@ -1,84 +1,58 @@
-import imgui
+from imgui_bundle import imgui, ImVec2
from datatypes import *
from main_menu import MainMenu
-from student_editor import StudentEditor
-from student_list import StudentList
-from student_info import StudentInfo
-from class_editor import ClassEditor
-from lecture_editor import LectureEditor
-from submission_editor import SubmissionEditor
+from database_editor import DatabaseEditor
-from student_graph import StudentGraph
-from student_ranking import StudentRanking
+from student_info import StudentInfo
def set_layout(size: tuple, pos: tuple) -> None:
io = imgui.get_io()
- imgui.set_next_window_size(
- io.display_size.x*size[0],
- io.display_size.y*size[1]
- )
- imgui.set_next_window_position(
- io.display_size.x*pos[0],
- io.display_size.y*pos[1]
- )
+ size = imgui.ImVec2(*size)
+ pos = imgui.ImVec2(*pos)
+ imgui.set_next_window_size(size)
+ imgui.set_next_window_pos(pos)
class GrapherLayout:
def __init__(self):
super().__init__()
- self.student_graph = StudentGraph()
- self.student_ranking = StudentRanking()
+ self.student_info = StudentInfo()
+
+ def set_layout(self):
+ pass
def __call__(self):
- set_layout((1, 0.4), (0, 0.02))
- self.student_graph()
-
- set_layout((0.3, 0.6), (0, 0.42))
- self.student_ranking()
+ self.student_info()
class EditorLayout:
def __init__(self):
super().__init__()
- self.io = imgui.get_io()
-
- self.student_editor = StudentEditor()
- self.student_list = StudentList()
- self.student_info = StudentInfo()
- self.class_editor = ClassEditor()
- self.lecture_editor = LectureEditor()
- self.submission_editor = SubmissionEditor()
+ self.database_editor = DatabaseEditor()
+
+ def set_layout(self):
+ pass
def __call__(self):
- set_layout((0.3, 0.3), (0.7, 0.4))
- clas = self.class_editor()
-
- set_layout((0.5, 0.3), (0.2, 0.4))
- self.student_editor()
-
- set_layout((0.2, 0.98), (0, 0.02))
- student = self.student_list(clas)
-
- set_layout((0.3, 0.38), (0.7, 0.02))
- self.student_info(student)
-
- set_layout((0.5, 0.3), (0.2, 0.7))
- self.lecture_editor(clas)
-
- set_layout((0.5, 0.3), (0.2, 0.1))
- self.submission_editor(clas)
+ self.database_editor()
class View:
def __init__(self):
super().__init__()
- self.io = imgui.get_io()
self.current = LayoutOptions.GRAPHER
self.main_menu = MainMenu()
self.editor = EditorLayout()
self.grapher = GrapherLayout()
+ def switch_context(self, ctx: LayoutOptions) -> None:
+ match ctx:
+ case LayoutOptions.EDITOR:
+ self.editor.set_layout()
+ case LayoutOptions.GRAPHER:
+ self.grapher.set_layout()
+
def __call__(self):
option = self.main_menu()
if option: