From a05d842a5a7c8c7e8324bd703189963fe82b0581 Mon Sep 17 00:00:00 2001 From: Norm Rasmussen Date: Mon, 7 Oct 2024 15:17:24 -0400 Subject: [PATCH] Moved functions to a util area. Cards on dashboard are organized and based on toggle and db. Cleaned up small functions. --- __pycache__/dashboard.cpython-312.pyc | Bin 1333 -> 3696 bytes __pycache__/main.cpython-312.pyc | Bin 12331 -> 12884 bytes __pycache__/utils.cpython-312.pyc | Bin 0 -> 1676 bytes dashboard.py | 32 +++++++++++++++--- main.py | 47 ++++++++++++++++---------- memorization_tasks.db | Bin 8192 -> 8192 bytes utils.py | 23 +++++++++++++ 7 files changed, 81 insertions(+), 21 deletions(-) create mode 100644 __pycache__/utils.cpython-312.pyc create mode 100644 utils.py diff --git a/__pycache__/dashboard.cpython-312.pyc b/__pycache__/dashboard.cpython-312.pyc index d315b2b6db8e325978e21021deeaa7b4e40ff5c9..2427b141cce89203da50bfab7e53aba62ebbecd0 100644 GIT binary patch literal 3696 zcmcIn>q{J06u%@v_MuHAqY3J^t{W|u<_Q{UO~Fl|l&GbI*_pfUuJc&#%tqZR z7+Q#ufGa80d}=?opf#dQ3VG2!86l>y9pQU9*tR!oBC*bM|+B z_nb2`cOF(&RseiS0z2~50l=R`u`ebsY<+`;1t0^NQot~oX@yehVVWW`qcAEv%;scD z;f6WLB|SF8{yfY>K3Ti3+tP!)FzliMq?2BIeSenO2h^@6b62MNLwD zAWMJo4**m2BrUTI*jeUA+W^Q?$X&p<<{%38cMyL&TJqRIADOqUQ_PWQ&N9&00<5dDYSJg@@6tIcvrD)m(aPx(M*-T~?UEWhM@M(bBv*C?-n_bwvaw55m%hsv zWUNTXms!oD(aNc&vw+*%t!8Z*)#S_0_?uVLSvGd*YW~X>c?(T|Q=k(V)EIsz58-DV z1+vWD$T%|u#;78ennNv(hg#k(ZkYhP>%qE+uq*cv0 zCm@)DqS@BfE~p7j7025;Q{(MIXAA{{=QAG}P=S&uq#!bMt^FpR;O=-MB^rh}0^1E! zG}DF1jzbC4x12F(N^wz9EKU)l zP_cMP!6}D^#Y*`6WU+*Q&}A_QFS!$1Oh>9{V(u186pM-9l<<(kLySlUwBht@GoYgRl>=0G<^r>UI}LLuXHPCSMAlqaH>+yr zMrTKtPefO%{&}EBCY+_onycOy5TJv24%m*kapib@Qgbejz>|Uo^k(xj(k* zZ(a9?SN!3hoU8t`S*Enn7g)GHfBoLjy02x$*RtH&yXw2V?z^($yR!TVTJss3UjIV> zeE;I$s<&m`+p*&9SPl<9_72(WpME!Zf8X}Q)MM|(Lrh;j_MYG7f#0N7e8vkWsPkvV z`M~1Gf7G5TO|j(WO7S<=eC8o!j^fDye;V^NUpYab;s4HUnK{JVayfi?3it$^(TZ!- zvg;}lnpa#+JKNs8eP_EWzl)u1&)!-v@4sU}+?3x^1E-mvncnV5J@d&!ZZlHr->f{E_yO%z2l9fwb#OZ#-5c!dt zi}>7+YI1Tt7ir>y9z?zsEM7}Ua3r0`-{q>9&=5-uEcp(yn9Elq7A;3D2fpPE9U<}= zX0a*!Jk8xiKY}g108kSicAOVfT}~_T5^BdPd3YMVczD536!ipno&x_<(D($npK-3+ wgSQ5!=?#bTcH&mztI=uZ8ReX=yB)X{m^raZ`CroSP#3lsKnHRXdJn_=2gR_)@Bjb+ delta 729 zcmZuv-Afcv6u);qoR6K^wWW5Y-E{0j8EVOoiVO*4qD-n61rcAG-MQ(?IJ3;mk}jF` zRFY)tK=jmep|3>`Jyb#kLF}^D!lY6Efn~I?Pu;5t30*kn{?6}w-E+7b$!B8tgDi^x zpYIW7>@6&Yo8VBf{YV1^5H%qd7gg9$eAyG?a0HEI^CMh@R~ds^ru{G*hrIuaNyI~> z!0ux(OVGa$6ObiwE#ci>Vi^rfaGRY7`8g_i3<8hc37hy|0{>6K8k6*Y(oz2x-RQsP zqSXAd|CNhT^UdVyn+8+#2)GVa@k$_^)7|m3tvg0R)bpOLbe`8R=ovFJnas$@&rcD&Erk+OTQ?N;9_C2vb z6vcpSz!08Wx2W3a;YL;uF8XDd9XBe#j&As#0%R>U}Y~DqXCxAbb1U6N<&JFfbydmKOJA=GI4dAF9JU#oqB7Gd9X@z_|QSxw?rBCOUVtnB3olVG*O zoXR;o&I&jyn?YmwtV4cHz)b2{%VD-)P9H-K8P$mp)kxGHtm=I4q;2F)bk>Ps6M`PR si4;Z~G=%UAkk&zL9US-u`CHLD@!Rpc$qJ19pg1@HH)%k{x8YX3Kj5sr&j0`b diff --git a/__pycache__/main.cpython-312.pyc b/__pycache__/main.cpython-312.pyc index 9c9f0c6d92499f4afaa579c8ad130a9ab8d418e8..e1ec0ada65d81e231a53a619c765d81aed1fbb64 100644 GIT binary patch delta 4210 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 delta 3949 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 diff --git a/__pycache__/utils.cpython-312.pyc b/__pycache__/utils.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ebd76fd8709190be9ad1dccfafde29b4166f174f GIT binary patch literal 1676 zcma)+&uiR96vsyzNnWqLyYY`CBsM{`p^G47DTVfsq$#w}+qQ8DS@vL|tY+6*>sMw* z{;{!(Lk(F|iYYzpq2v!JzVz7tp%(=ovZy%}dg`s%hk{RiBWaWMCbS*US5Ncn&HKDJ z`n6OlB51+;N{7n`{UJU^P05YZ1{ecmBU^G&6A{#fnUk$46S+Gz*^AIo-qloO^f|KS zePrXKe0@{hmJH=jF{9oZUn=Dvr`N$4fXAj}qo!<2`>2V<9!4K6@8r5526+A3i>K953BHu6)v0hUKNcedrx{-v)g=tjza|8KP0XVGR=W zQbaBo|BdMFSbl^`dxl@(133Ryo4fLk4DfKhcPodt0nEsaRL#(0%<7OEj9WZnV;uF( zH9|?w_fGXpsu~Iv!P8lgMBT95h|m()09?z`kYGw!qS+4}za20Ur#>RQAV9K^w4Aon z0>&b1y(_O7PYhjvwd?~Bpj@6iTt8TkmmkE9)fWx>dBct$keIaNtDWQW8lawA94vpo z{KK`rHmqFimon<(B{vNlrPRL$<9|?>1!182mXd@Kyn{fMXH%~-fVsGJY3mAK6Kzz+ zlDMR5y|)yFP=+L{SDg{A=k)LB)!uyd9C=;zRjRt>+j^QY(Lv|IgQ31o2VH=UM7AF$ zS}X88hZ_oHNTiuAiV-bykYLAWOhg5F8I?W{Ivtmounx+eJCK&V^xqh`2n*S5kg=qE z^o#cMR($tfywZ5Fvif{wHNI!YrXL49_MsCbRtV? z=|sco!buUUmrjeax|l5yvki@w;g#S|zo^qI!qVV>!2+7`OgB959iSy0+9{yXqAT6FCkks=(vWt3a literal 0 HcmV?d00001 diff --git a/dashboard.py b/dashboard.py index 98cf907..04a2c46 100644 --- a/dashboard.py +++ b/dashboard.py @@ -1,13 +1,37 @@ import theme from nicegui import ui from main import checked_data +import data + +db = data.CON +cur = db.cursor() @ui.page('/dashboard') def dashboard(): with theme.frame('Dashboard'): pass - with ui.grid(columns='auto 150px'): - with ui.card().classes('border-purple-200 grid justify-items-center').style('border: 2px solid rgba(0, 255, 0, .25)'): - ui.label('John 3:16').classes('text-center') - ui.label('For God Sent his son etc etc').classes('font-bold') + with ui.grid().style('grid-template-columns: repeat(2, minmax(1px, 1fr));'): #(columns='auto 99px 1fr 2fr').classes('w-full gap-3'): + res = cur.execute(f"select person,verse,verse_passage,status from tasks where status = '0'") + information = res.fetchall() + for info in information: + if info[0] == 'hannah': + hvc = ui.label(info[1]).classes('hidden') + hpc = ui.label(info[2]).classes('hidden') + with ui.card().classes('grid justify-items-center').style('border: 2px solid rgba(0, 255, 0, .25)'): + ui.label('Hannah').classes('absolute top-0 left-0 font-thin text-sm') + ui.label(hvc.text).classes('text-center') + ui.label(hpc.text).classes('font-bold') + elif info[0] == 'fiona': + fvc = ui.label(info[1]).classes('hidden') + fpc = ui.label(info[2]).classes('hidden') + with ui.card().classes('grid justify-items-center').style('border: 2px solid rgba(255, 55, 0, .25)'): + ui.label(fvc.text).classes('text-center') + ui.label(fpc.text).classes('font-bold') + else: + lvc = ui.label(info[1]).classes('hidden') + lpc = ui.label(info[2]).classes('hidden') + with ui.card().classes('grid justify-items-center').style('border: 2px solid rgba(0, 0, 255, .25)'): + ui.label(lvc.text).classes('text-center') + ui.label(lpc.text).classes('font-bold') + diff --git a/main.py b/main.py index bf61d4b..283541f 100644 --- a/main.py +++ b/main.py @@ -4,6 +4,7 @@ from nicegui import app, ui import re import requests import theme +from utils import Utils # DB columns tasks(person, verse, verse_passage, status, awana_completed, awana_bonus) db = data.CON @@ -11,7 +12,6 @@ cur = db.cursor() APIKEY = "Token f562cf2d890151d682065696dacdc0f86938a18e" HEADERS = { 'Authorization': APIKEY} -card = "card" @ui.page('/') def index_page() -> None: with theme.frame('Homepage'): @@ -19,7 +19,12 @@ def index_page() -> None: pass with ui.grid(columns=1).classes('self-center justify-items-center content-center p-2 m-2 rounded-xl'): - toggle = ui.toggle(["Hannah", "Fiona", "Liam"], clearable=True, on_change=lambda: show_person(toggle)) + users = Utils.get_unique_people() + for ppl in users: + pers = str(ppl)[2:-3].title() + users = [pers if x==ppl else x for x in users] + toggle = ui.toggle(users, clearable=True, on_change=lambda: show_person(toggle)) + with ui.row().classes('fixed bottom-0 left-0 p-2 m-2'): with ui.element('q-fab').props('icon=navigation color=accent'): ui.element('q-fab-action').props('icon=add color=secondary').on('click', lambda: add_verse(toggle)) @@ -36,14 +41,12 @@ def index_page() -> None: def show_person(person): showperson.clear() if person.value is not None: - res = cur.execute(f"select verse,verse_passage,status from tasks where person='{person.value.lower()}'") - dbinfo = res.fetchall() + dbinfo = Utils.get_specific_person(person) if dbinfo == []: showperson.clear() ui.notify(f"{person.value} doesn't have any verses saved under her name! Start adding some by clicking the green arrow in the bottom left.") else: - showperson.set_visibility(True) #False if showperson.visible else True) - # showoptions.set_visibility(True) + showperson.set_visibility(True) if person.value == "Hannah": setcolor = "rgba(0, 255, 0, .5)" elif person.value == "Fiona": @@ -58,24 +61,34 @@ def index_page() -> None: label_passage = ui.label(text=item[1]).classes('hidden') label_status = ui.label(text=item[2]).classes('hidden') ui.label(label_verse.text).classes('font-bold') - # ui.chip(label_verse.text, icon='ads_click', on_click=lambda: ui.notify(label_passage.text)).classes('border p-1') - ui.label(label_passage.text).classes('text-wrap') - if label_status.text == '0': - ui.chip("Incomplete", selectable=True, icon="add", color="negative", on_selection_change=lambda: toggle_completion(label_verse.text, person, status=1)) + 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)) + if label_status.text == '1': + ui.chip('Complete', + selectable=True, icon="add", color="positive", + on_selection_change=lambda label_verse=label_verse: Utils.toggle_completion(label_verse.text, person, status=0), + on_click=lambda: show_person(person)) else: - ui.chip("Complete", selectable=True, icon="add", color="accent", on_selection_change=lambda: toggle_completion(label_verse.text, person, status=0)) + ui.chip('Incomplete', + selectable=True, icon="add", color="negative", + on_selection_change=lambda label_verse=label_verse: Utils.toggle_completion(label_verse.text, person, status=1), + on_click=lambda: show_person(person)) ui.checkbox('Pin Verse')#.bind_visibility_from(card, 'value') ui.checkbox('Mark as Completed')#.bind_value(item[2]) ui.separator().classes('col-span-5 h-2') else: showperson.clear() - def toggle_completion(verse, person, status): - ins = cur.execute(f"update tasks set status = '{status}' where person = '{person.value.lower()}' and verse = '{verse}'") - print(f"update tasks set status = '{status}' where person = '{person.value.lower()}' and verse = '{verse}'") - db.commit() - show_person.refresh - show_person(person) + def edit_verse(verse): + ui.notify(f"Edit Verse function is running for {verse}") + + # def toggle_completion(verse, person, status): + # ins = cur.execute(f"update tasks set status = '{status}' where person = '{person.value.lower()}' and verse = '{verse}'") + # print(f"update tasks set status = '{status}' where person = '{person.value.lower()}' and verse = '{verse}'") + # db.commit() + # show_person.refresh + # show_person(person) def add_verse(person): diff --git a/memorization_tasks.db b/memorization_tasks.db index f6738a923c4fa4f9cb324199f6fc3ad213380e42..3a245b71ea560b07d989ce5c7be11c389889637c 100644 GIT binary patch literal 8192 zcmeHM-EJF26kdl?HX$MOBC>kZ9*GO6YFTkhTQxVOK}ks!glJRs0#G&fj=dw#&X}25 zo8>AF;sttvK!OM1j`u*^_z8FfzB8^vB!sv{FzcV)ne#K}eCInOkNou0V-+L~t*bG6+BR@oVkFCkGEt4(R0J{_z3DsrM$* zd22c}#a+I-y_g8^#Rx;#h1z#W%!Cmy2DX~OpDb1reQRoe<08;oTR&%)Hx}9Uy|=#G zSZw~jdF{<#Hhx{c)?co_yr`R=69Nf=gg`u2iy71p|VEw=&>yg-QMf%?l%-lLDzHHTFM5wvBz~b&VWlTy15KP51T~Q4)Tj*7*4{{um6y_$cVit-u_J3_TSGZgn$fL0d%auxbs#tr#?PeVGr;2X`x95| zrb9>M1#-94*qTR$jX{o$o$*w6ar#5_KL6zPeCPUElP}#z;NAytkEO5uxo526*!z!1 zL$;=|K?t0~NDaeZkXwQsO8ni3WDtikqw`P@;v@ z&#s_K9|>bbxoX+FU>Vm4y-421GDWCB0H;Cmh&D5iX~Jc&MmO}756n@t>dU^=3Jr<| zG|VINWn@?EROys2sn6ZRUT}VPMrhJ%D49je#@K7+S8tv@0Q$=SpTL_I0UHdVL3#-D zxphn{-brGY+1k;ub*MbH5Z+7BeohV~(|x3^gDM22L`l=~h;jFuews~)(xXa4~ai34>2 delta 74 zcmZp0XmFSy&1f-E#+l!OK`(C?F9QPuBY!Icf9u9V5&p?d{Pprc5eEJ*4BU|*$aNbT Oa!%r$1X4G#;S2!M2^IMO diff --git a/utils.py b/utils.py new file mode 100644 index 0000000..4c84671 --- /dev/null +++ b/utils.py @@ -0,0 +1,23 @@ +import data + +db = data.CON +cur = db.cursor() + + +class Utils(): + def __init__(): + pass + + def get_unique_people(): + data = cur.execute('select distinct person from tasks;') + ppl = data.fetchall() + return ppl + + def get_specific_person(person): + res = cur.execute(f"select verse,verse_passage,status from tasks where person='{person.value}'") + dbinfo = res.fetchall() + return dbinfo + + def toggle_completion(verse, person, status): + ins = cur.execute(f"update tasks set status = '{status}' where person = '{person.value}' and verse = '{verse}'") + db.commit()