From 641c17df366b6471f172a5e30ae914b877a8b0e9 Mon Sep 17 00:00:00 2001 From: Norm Rasmussen Date: Wed, 9 Oct 2024 17:03:32 -0400 Subject: [PATCH] Cleaned up some of the duplicate and old test files. Got the flex grid to work and the font is okay for now. Can't seem to get darkmode to work across multiple pages from the header. Editing and adding a verse functions were updated. --- __pycache__/dashboard.cpython-312.pyc | Bin 2455 -> 2832 bytes __pycache__/theme.cpython-312.pyc | Bin 2223 -> 2287 bytes __pycache__/utils.cpython-312.pyc | Bin 3364 -> 4027 bytes ...ard (conflicted copy 2024-10-07 175852).py | 28 -------- dashboard.py | 38 ++++++---- main.py | 66 +++++++++--------- memorization_tasks.db | Bin 8192 -> 8192 bytes test.py | 13 ---- theme.py | 3 + utils.py | 47 +++++++++---- 10 files changed, 94 insertions(+), 101 deletions(-) delete mode 100644 dashboard (conflicted copy 2024-10-07 175852).py delete mode 100644 test.py diff --git a/__pycache__/dashboard.cpython-312.pyc b/__pycache__/dashboard.cpython-312.pyc index e4faaa3905b627eb1cc1f25d55da02443a46a1cb..e0cca1ff5f29b2ca5f9801c6b3ca2bc7ba71fde1 100644 GIT binary patch literal 2832 zcmb7GO-vg{6rT0&+PfHt|G>s1?LtUWCpd(JwuJm3CD4W{imEnI8>$Gcy^Foh{y4kq z7%U@EscJ!u6i^NrwN+B7Qi-UP9@|sZOVy|sR;DuA5GhhmoSKMKNSr!jGdNA%q^#w6 zZ{GLjn>TNE-t2D;4RruMSN?P+0!{$_Kpp&0Tgv(ZROWyH1VRSGNIGOfaSS^Mq?0nK zP{UMNCuDk<7D1{WQ&c6iHdcFBgH{jLt5Tr8B!^iC5FM#N)rvKN7M$O?79Ewozt?@0svS46K!vFdT%*Px^fC*p{*detQ1@0p$5Q|&*>wo|($`SnGcnM(A*gFL? z{``a2l474nAhQEAr`$DA5~FBdvjKb5$~&HAg2)pC;7SyL35P(Xym(Ai=C|jZAfMs% zRXwnl-=2Sh%7Z+WgTMs1(M18X3Hzj)u~wCNfa4}W9t?mP;>xFRB>haDLRD|9Yv!vC=d0%X_Q zJ7EJI6-C>blmtOk*HA57LzXpEMRP3)T@tud#xSMP@u*~qiV=;AswwI@Urf^lQSal9 zrpGu#lc8Vk03U-|#uPbIOGkS+SsXQ^$GA~VHKS%yQaMu`Goyx*Ybq-hrV6ZRs+K!i z_LNbu6<0Y?K@DCtDi*XLE~bn8)o2z5U_`t&Z6-xUwCPcuS417fZBr<2czwvcVZiHy zHq3EZ)X^1bdlRBLl2N5=8F3^nYH3-tsgx$Eb~6IfqHbuaF(RpPO@Wvx+D@HU1x>MC zMlv%Bvux8c9}{Jpio;vTrsJBd={AKH1Q9JO>JiqiuZ$Tfr^t3y<}qwCotA9}{Ih5* zoMcq9DU?;4zFuKVmjxA59%9N(Qb>?HbVH83k^L(e&!>Lvu!I({RRo@ z+Mm{ey84^J>EP!rB{poa;icA-MfOyQJ!`RNSD22!NJpLXsT24^C11qyMT)*dQ?3X8 z@YLBAuYWE$8!Y&5?VdWb8ro9|^;n^v@82tidZ&g~S`REltkz@G=O4R3p!F#O*j+ap zryFPT%S^{=fSVdvg~LO$p+ZOD+Wdi{x4q;&Xn7AV^cKB6kS@?XcW(Av;o_aP`45VL zeWgIu3Pcx@#lV|WgD(dCO>@1oy@i20-ubtS{*IEr)ADyNd|33qQJE8le5p;D2HKvM09ThSX00 zYTTfyZNm?f{TRSz!wvVwV%s)1_G6FDjXfCMG`iu|7KkAy`Ey{_6ik^1FWR zcEiqnCq3kG-S^W&d))U!46<UmF5%hjfd)8unt?GzXqF4=A@zt8Cg87cfl?yD#kmoc}x-n@c`661kDdY z@BwIe?Jf*16YWnNVIoeflfbdJ JqUwhs-QTpWHDCY$ literal 2455 zcmb7GU2GFa5Z?3M`Fu_S!8zv~0>YsbY!NpJrBw+nl^`miLO`h^imMWxeVgRm`|JG> z+jS%=ArVxhBtoh|ZAFkORTVFJY@ez=RH@V#pB!p*1PQ5q$y;eEMaolm9iMGcw-IaI z&g{(Wx3e?5v;MWCBM4A?I!8~^6ac^Df!ENu+Sb28qzFVH5;90)>XQk@m-G=^GBQab z87Wf=ouml>L8iSnvxy+-j;3LaMbgfHOGWA{GRgV?^kujfTKWO8B^CYG!GoGXvMoo% znKe8*7bjewEuo$svn1J!lP+ngmdm8=R7!%T>o;}5_}I(`2SmY~N@;>2rfV=&!lIr; z-}(U*f+DbL%K?z_HJfemBH_978Xy3RLxO$}YL*1BXm3u&?{N+4xu3ynKG#HFGqTm@ zsau8D!cpoFhdr|D()DYT$ZY zffA`6H1NF7ggs4ziuEMU(A%Qhk@E+%_hj;KL_`04QeDaz+ZIzR{ZA)K+p0C^D(5-y+X1By{^R(My`(GHl zy@CDwy_+X)eL$g`aO(!u;#TIsOJE3?#55{mmr?WxZ24Q3ybPv^7MhvXnjF}Y$2-os z?1)!O@~=)Bl9;fdqRWB>6KPGh71bP$8c>IV6+6-&RU}mrvaumO+aDd8Fyis!E?C25 z#`RB0q6pPBTtC)u5z6;qv}ndQEomZ`kPxhyNJG_vMn06%3=tZ`(Ia{`YHBjF%O4U_ zh_fviwKP337?t6Kg~)`aS_x}PQll2kS_xChw^f-M5?j@$G+B)AbZKh}D$u1T3_*bg zcEY8w6E1C9IT;%GVQ_a%LTlVsrB7@)u0u_ip-W{nNp-uiLWhQ_sphz(rZp4>XdyUR zNI@A@VOcOuRE4QDs=F?YqN5oug`Ghr+B7uc0hifAG+k2HW!Hy37F#2@3C*Q&3|#u^ z)_lE6sI+XS%m8vMT5Frb17jxgVnEdl#Sl!zMysj=BU;*4Q1r}!3x<|~X~YQAf+{qg zf>-pM%hn$T<7I@2am@nC&o%G|yJN2RX7Bum581v)f%Xj&1o!{#2f_9^{wDu<&)mM7 z`$|3M9Q3)T3QpMSg+5({+2#?8(*0-b&=C6FItcu^f40 z_RMOeZ=PC>?7kPc8(8EPh5LLt60bytoXF5ptQd-s_#AFJ?# z4nMdQDf7b!Hp~|Nxe`9;gb$Vuoh*k>Rl;YS@R`!tD=Xt-2}%{HI#8`Z%YjxI zUUkN&OINa`cXJQJ`BkpFIJz);=i=?N6)xs*u~Piv3irMz9=n&kn=Es&3ODF*gG+l? zxVQg9)w{yIwZVYyPYEZS|BD4Z`=2p@>)oJ1@B&d{&m&!Mzr*%zZbWKEn;Ts<-KIH& zvhW3Qx}W@s9O)eOlRtNzBu*b=m$@Biu-s3dew|r9Mvsym%O?Uz@{6Ay-O0q;4g3VU zj4Gw!q%GBsvnW`COWXMGLG?Hr_?0&B18p$4!xh%0bYT)!55RX|9SMMO0Ck&zHx*5^ zWq88qM?-vT&391uCrJ>*W6=HtbUy}dPXPb4GhAdB*hToQa$ou0{;}{w!3mtbMn5G2 d*Frb=&-mFrWup6;uah{jP68ia<&47!>L1hh^6mft diff --git a/__pycache__/theme.cpython-312.pyc b/__pycache__/theme.cpython-312.pyc index 151c72888e18c8de49cb97e1b5656ee69d289665..6114ec3f654967197fd21a3fcce93afb2d00ef88 100644 GIT binary patch delta 245 zcmZ24_+F6jG%qg~0}v#=XG^zanaC%>m^4vclZ}ZXl{t%V@=xYY418kW`5Cw@ zzKBh3XIB*B1oAr~eu0H9aGL-6E;e}=dmK=UB!@m1XG&sGc6@GrO6p{H4#jX)p!pz+ zi(P@l2WCb_#=8uvcNxS!uraX8HZb4dP;6ko!7kUpc7sQv!>Qk=(`SarWgfW(&IgSA cADH+V`DQqOVgOQ~nHiV_K7s^_RDdP{0BV3d=Kufz delta 194 zcmaDaxL%O&G%qg~0}xm)WKF-vJdsa=(Qcx;rc^3p3R^0B8dC~;3(IPdJP<^2RB~u? zPV7tF_+<|(Bj@CeY}*;{OwMGt;AUmu6Z_83z-948WbztzMIm+|za!!oSm*+$`LFLH zlkc;~0kzn1=ufWTP;gfP8pjC4#il^w12ZEd<6Q>Ty9{C<*ce!48<=l!C^oR)V3%uP fd%(#5fr*ciZ-(As!Su#QGe0yg#z2SZP2B*9zFUWgtb){jY8n<6HLP8Qm3Y*YbQdY`IL`wApS>0@biSinSz8eu-K_9NBwoWVxr%UYh1mi1YDWmSi5q93Gy}LR+in zv&{EE6S5pZ$Fg{G0s^a8OL~69h5iwJ<<6c=$kda1-12J)(@Lb`7P>7|p)pzZmJ_pm zkonlq$C9zQ?oXtwwBL%EqozNILc--4JCDu&cyi(k)jt_aPUvPZ@R|!W`vVz~VyLLH z0rdmbVJO6(;i6DMJv$%iR(v>}()YQMbRuQELw9HnRlZm!!$++gV=>c=4G|-H%f3X> zw2VY*$eiJcfu9b;NlnF=radgyIaAVWC6Z?An}vF^Z$2SFI8;)$IJGdf=kD5=e4c%l z-ALtcV5NuDrc|2e2!$$ZmIiVI=;6Gy=c!tX=MW_BSan#)W-P~jX7zbX$CDgd@@_CHDv*yEGQ=|AXSIUj?=26{~S${ z&|}bozJ~82ud}sO73?ZFj;o8togNQ+ns}p$7~3uKle6Joh|ca1m<4-f7nfRcExTob zowC3RyK?VES=+qhO?E=7RjVSt{%QW!c6ckC@4^pge(-P_r^m1|e)?FnF4e+sP!rcc zcz=;QCU2#(%%6!|m0Lel6DiWV)*1c<$4ED)Q|FoI4+e}Ni7>+iRKrUYm9d}GOmq~L z8aq0OVzv_?EI27<$A<7+d8Vv>wRt~Zx81nanD^q|2v+*f1v+m3Cb3ec$jYK$lYV39 ziLBn}q<(3J&iDNayu@1mEw)O5dqZyV8b(9O_XOjprKm~sp@@i&DweB47VQQM$aZ$k zmtzM|qsEaMrOqCFsCvt#iXstlXrx}uiAX*4Ay*}GXw^ecJt61NYu_xS1a%Jo_jdL_ zZ)Sh<_NVqoEy~Y6pNHW1`;j#9n^aWZ3diuNM0BFl84@Q3nPU9?!4YQ$v;9JAb6jNP z0@2wWq6?4rjB%-0P-#!`hhA~9F5)Tfd`;bJ^HikNyOv`H?eb$W>wT1EvaJLjOy8S^ z)@u+O-HPd(F&(ZMVBCO~iHb5=5MBg=wqLx>@`C-X_)rzA(wt#hhS`M6tFo2RGP71y zNF*&w#2MA@k@8@?Rh0befxeX9PjfB-Qz zH3~WU9nr<_U61!%l-PMsyYzpj$WhLU)nI&bYdpC*o&+rgsr(KhOY|JWaGRdz;XJ#*L+B!VMM&ThlL``EgZ)H$ zJ6ym+yva33_UUE*Ys@LheoBL4j!emjy4k+v@>0r?eIX2FJFqznGovDxl$z13X)Bz@ z7D^=}>YO$+YglTS(~Cr8GmN{vfz6?~&yMXjolDzYZvRn#{B#E=)%BWG;l?+KdaAoljRw9bJYIbclL&|^z0v1&5 z4kgmhPh_3itse-MjuwwXdw;oe None: with theme.frame("Homepage"): firstload = Utils.get_unique_people() @@ -36,14 +35,15 @@ def index_page() -> None: pass with ui.dialog() as addchild, ui.card().classes("items-center"): - result = ui.input(label="Clubber's Name") + result1 = ui.input(label="Clubber's Name") + result2 = ui.input(label="Awana Club") ui.button().props("push glossy icon=add_circle color=secondary").on( - "click", lambda: add_child(result) + "click", lambda: add_person(result1, result2) ) with ui.grid(columns=1).classes( "self-center justify-items-center content-center p-2 m-2 rounded-xl" - ): + ) as pplrow: users = Utils.get_unique_people() for ppl in users: pers = str(ppl)[2:-3].title() @@ -69,7 +69,6 @@ def index_page() -> None: pass showperson.set_visibility(False) - # FEAT: Allow editing of the verse. Awana will sometimes only give the student part of a verse (i.e 1 John 4:14 is actually 14b). @ui.refreshable def show_person(person): @@ -92,7 +91,7 @@ def index_page() -> None: setcolor = "rgba(255, 0, 0, .5)" else: setcolor = "rgba(0, 0, 255, .5)" - with showperson.classes(f"border-8").style( + with showperson.classes("border-8").style( f"border: {setcolor} 1px solid;" ): with ui.grid(columns=5).classes( @@ -103,10 +102,10 @@ def index_page() -> None: label_verse = ui.label(text=item[0]).classes("hidden") label_passage = ui.label(text=item[1]).classes("hidden") label_status = ui.label(text=item[2]).classes("hidden") + verssage = ui.label(text=f"{label_verse.text} - {label_passage.text}").classes("hidden") ui.label(label_verse.text).classes("font-bold text-center") with ui.row(): ui.label(label_passage.text).classes("text-wrap") - # ui.chip("Edit Verse", selectable=True, icon="edit", color="white", on_selection_change=lambda label_verse=label_verse: edit_verse(label_verse.text, person, label_passage.text)) if label_status.text == "1": ui.chip( "Complete", @@ -134,8 +133,8 @@ def index_page() -> None: selectable=True, icon="edit", color="cubbies", - on_selection_change=lambda label_passage=label_passage: edit_verse( - label_verse.text, person, label_passage.text + on_selection_change=lambda verssage=verssage: edit_verse( + verssage, person ), ).classes("text-white") ui.chip( @@ -153,17 +152,30 @@ def index_page() -> None: showperson.clear() addverse.close() - def edit_verse(verse, person, passage): + def remove_verse(): + pass + + def edit_verse(verssage, person): + editverse.clear() editverse.open() + verse = verssage.text.split('-')[0].strip() + passage = verssage.text.split('-')[1] with editverse: with ui.card().classes("flex-wrap items-center"): ui.label("Here's the verse for easier copy & paste:") - ui.label(passage) - editing = ui.textarea(label="Edit below") + ui.label(passage).classes('text-center') + ui.label(verse) + editing = ui.textarea(label="Edit below").classes('center') with ui.row().classes("justify-content-center"): ui.button().props("push glossy icon=add_circle color=secondary").on( "click", lambda: edit_submit_verse(person, editing, verse) ) + ui.button().props("push glossy icon=cancel color=sparks").on('click', lambda: editverse.close()) + + def edit_submit_verse(person, passage, verse): + Utils.edit_verse(person, verse, passage) + editverse.close() + show_person(person) def add_verse(person): if person.value is None: @@ -176,19 +188,11 @@ def index_page() -> None: with ui.row().classes("justify-content-center"): ui.button().props( "push glossy icon=add_circle color=secondary" - ).on("click", lambda: submit_verse(result, person)) + ).on("click", lambda: (submit_verse(result, person), addverse.close())) ui.button().props("push glossy icon=cancel color=negative").on( "click", lambda: addverse.close() ) - def edit_submit_verse(person, passage, verse): - print(passage) - print(passage.value) - Utils.edit_verse(person, verse, passage) - editverse.close() - show_person(person) - - def submit_verse(result, person): # Check if Verse is already in db @@ -243,24 +247,18 @@ def index_page() -> None: else: ui.notify("Uh oh. Something went wrong.") - ins = cur.execute( - f"replace into tasks values('{person.value.lower()}', '{result.value}', '{zpassage}', 0, 0, 'none');" - ) - db.commit() + Utils.add_verse(person, result, zpassage) show_person(person) - def add_child(person): + def add_person(person, club): check_person = Utils.get_specific_person(person) - print(check_person) if check_person == []: - Utils.add_person(person) - # persontoggle.set_visibility(False) - show_person(person) + Utils.add_person(person, club) addchild.close() else: ui.notify( f"The name {person.value} already exists. Please add someone else" ) - + show_person(person) ui.run(storage_secret="b601785a-855c-41d1-adeb-68f0330d8186") diff --git a/memorization_tasks.db b/memorization_tasks.db index 06207fc6634bc5f0eff1dda179375da84addccec..858c0f4e74efd74dcdc58afaf3c21535f2fb4118 100644 GIT binary patch delta 788 zcmaiyL2DC17=|~9G)dbm2&IN3&DT&*i6JS9C3NL_v?w(U!+ell3K zEGuPCEPHY>$l1}U{jRu_-LZ0q_F?WSyR&k>yuA8p3-}=8t71(Xibog-TY8#kW`t$NZ}_0o~gb_eZ#BfC=PP_hBB5?TLKY2R`tel zfMj1q=f&QwlJzC}Rs1{|r!(uDv%SBs@mlzZD`>WwM<`^b4=5~$$g~q(XcGgW=ku?D zix`XNAT-@OQ|t@^mrteCPM)d(XR* zr;DeH-x3IQ`4##8^Znmgn8h=>OD3Ip8Uy>}FEZ;C6q1Wl6H8K4^d2?L1tNpI{Jhi< zzmUdoR!&j*rb>>