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.

This commit is contained in:
Norm Rasmussen
2024-10-09 17:03:32 -04:00
parent 1ec9c3ca12
commit 641c17df36
10 changed files with 94 additions and 101 deletions

66
main.py
View File

@ -1,19 +1,18 @@
import data
import dashboard
from nicegui import app, ui
from nicegui import ui
import re
import requests
import theme
from utils import Utils
# DB columns tasks(person, verse, verse_passage, status, awana_completed, awana_bonus)
# DB columns tasks(person, verse, verse_passage, status, awana_completed, awana_bonus, spark )
db = data.CON
cur = db.cursor()
APIKEY = "Token f562cf2d890151d682065696dacdc0f86938a18e"
HEADERS = {"Authorization": APIKEY}
@ui.page("/")
@ui.page("/", dark=False)
def index_page() -> 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")