Spaces:
Sleeping
Sleeping
Add Year/Level dropdown with MBBS year options
Browse files
app.py
CHANGED
|
@@ -32,20 +32,21 @@ def init_database():
|
|
| 32 |
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
| 33 |
name TEXT NOT NULL,
|
| 34 |
medical_school TEXT NOT NULL,
|
|
|
|
| 35 |
registration_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
| 36 |
)
|
| 37 |
""")
|
| 38 |
conn.commit()
|
| 39 |
conn.close()
|
| 40 |
|
| 41 |
-
def save_student(name, medical_school):
|
| 42 |
"""Save student information to the database."""
|
| 43 |
try:
|
| 44 |
conn = sqlite3.connect(DB_PATH)
|
| 45 |
cursor = conn.cursor()
|
| 46 |
cursor.execute(
|
| 47 |
-
"INSERT INTO students (name, medical_school) VALUES (?, ?)",
|
| 48 |
-
(name, medical_school)
|
| 49 |
)
|
| 50 |
conn.commit()
|
| 51 |
conn.close()
|
|
@@ -59,7 +60,7 @@ def get_all_students():
|
|
| 59 |
try:
|
| 60 |
conn = sqlite3.connect(DB_PATH)
|
| 61 |
cursor = conn.cursor()
|
| 62 |
-
cursor.execute("SELECT id, name, medical_school, registration_date FROM students ORDER BY registration_date DESC")
|
| 63 |
students = cursor.fetchall()
|
| 64 |
conn.close()
|
| 65 |
return students
|
|
@@ -739,6 +740,12 @@ with gr.Blocks(title="AnatomyBot - MBBS Anatomy Tutor") as demo:
|
|
| 739 |
lines=1,
|
| 740 |
scale=1
|
| 741 |
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 742 |
welcome_submit_btn = gr.Button(
|
| 743 |
"🚀 Start Learning",
|
| 744 |
variant="primary",
|
|
@@ -958,7 +965,7 @@ with gr.Blocks(title="AnatomyBot - MBBS Anatomy Tutor") as demo:
|
|
| 958 |
logout_btn = gr.Button("🚪 Logout", variant="secondary")
|
| 959 |
|
| 960 |
students_table = gr.Dataframe(
|
| 961 |
-
headers=["ID", "Name", "Medical School", "Registration Date"],
|
| 962 |
label="Students Database",
|
| 963 |
interactive=False,
|
| 964 |
wrap=True
|
|
@@ -967,7 +974,7 @@ with gr.Blocks(title="AnatomyBot - MBBS Anatomy Tutor") as demo:
|
|
| 967 |
|
| 968 |
|
| 969 |
# Welcome Screen Handler
|
| 970 |
-
def handle_welcome_submit(name, medical_school):
|
| 971 |
"""Handle welcome screen submission."""
|
| 972 |
if not name or not name.strip():
|
| 973 |
return gr.update(), gr.update(), gr.update(), gr.update(), "" # Don't proceed if name is empty
|
|
@@ -975,10 +982,13 @@ with gr.Blocks(title="AnatomyBot - MBBS Anatomy Tutor") as demo:
|
|
| 975 |
if not medical_school or not medical_school.strip():
|
| 976 |
return gr.update(), gr.update(), gr.update(), gr.update(), "" # Don't proceed if medical school is empty
|
| 977 |
|
|
|
|
|
|
|
|
|
|
| 978 |
# Save to database
|
| 979 |
-
save_student(name.strip(), medical_school.strip())
|
| 980 |
|
| 981 |
-
greeting = f"**Welcome, Doctor {name}!** 👋 from {medical_school}"
|
| 982 |
return (
|
| 983 |
gr.update(visible=False), # Hide welcome screen
|
| 984 |
gr.update(visible=True), # Show main app
|
|
@@ -989,20 +999,20 @@ with gr.Blocks(title="AnatomyBot - MBBS Anatomy Tutor") as demo:
|
|
| 989 |
|
| 990 |
welcome_submit_btn.click(
|
| 991 |
fn=handle_welcome_submit,
|
| 992 |
-
inputs=[welcome_name_input, welcome_school_input],
|
| 993 |
outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
|
| 994 |
)
|
| 995 |
|
| 996 |
# Also allow Enter key to submit
|
| 997 |
welcome_name_input.submit(
|
| 998 |
fn=handle_welcome_submit,
|
| 999 |
-
inputs=[welcome_name_input, welcome_school_input],
|
| 1000 |
outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
|
| 1001 |
)
|
| 1002 |
|
| 1003 |
welcome_school_input.submit(
|
| 1004 |
fn=handle_welcome_submit,
|
| 1005 |
-
inputs=[welcome_name_input, welcome_school_input],
|
| 1006 |
outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
|
| 1007 |
)
|
| 1008 |
|
|
|
|
| 32 |
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
| 33 |
name TEXT NOT NULL,
|
| 34 |
medical_school TEXT NOT NULL,
|
| 35 |
+
year TEXT NOT NULL,
|
| 36 |
registration_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
| 37 |
)
|
| 38 |
""")
|
| 39 |
conn.commit()
|
| 40 |
conn.close()
|
| 41 |
|
| 42 |
+
def save_student(name, medical_school, year):
|
| 43 |
"""Save student information to the database."""
|
| 44 |
try:
|
| 45 |
conn = sqlite3.connect(DB_PATH)
|
| 46 |
cursor = conn.cursor()
|
| 47 |
cursor.execute(
|
| 48 |
+
"INSERT INTO students (name, medical_school, year) VALUES (?, ?, ?)",
|
| 49 |
+
(name, medical_school, year)
|
| 50 |
)
|
| 51 |
conn.commit()
|
| 52 |
conn.close()
|
|
|
|
| 60 |
try:
|
| 61 |
conn = sqlite3.connect(DB_PATH)
|
| 62 |
cursor = conn.cursor()
|
| 63 |
+
cursor.execute("SELECT id, name, medical_school, year, registration_date FROM students ORDER BY registration_date DESC")
|
| 64 |
students = cursor.fetchall()
|
| 65 |
conn.close()
|
| 66 |
return students
|
|
|
|
| 740 |
lines=1,
|
| 741 |
scale=1
|
| 742 |
)
|
| 743 |
+
welcome_year_input = gr.Dropdown(
|
| 744 |
+
label="Year/Level",
|
| 745 |
+
choices=["MBBS 1st Year", "MBBS 2nd Year", "MBBS 3rd Year", "MBBS Final Year", "Intern"],
|
| 746 |
+
value=None,
|
| 747 |
+
interactive=True
|
| 748 |
+
)
|
| 749 |
welcome_submit_btn = gr.Button(
|
| 750 |
"🚀 Start Learning",
|
| 751 |
variant="primary",
|
|
|
|
| 965 |
logout_btn = gr.Button("🚪 Logout", variant="secondary")
|
| 966 |
|
| 967 |
students_table = gr.Dataframe(
|
| 968 |
+
headers=["ID", "Name", "Medical School", "Year", "Registration Date"],
|
| 969 |
label="Students Database",
|
| 970 |
interactive=False,
|
| 971 |
wrap=True
|
|
|
|
| 974 |
|
| 975 |
|
| 976 |
# Welcome Screen Handler
|
| 977 |
+
def handle_welcome_submit(name, medical_school, year):
|
| 978 |
"""Handle welcome screen submission."""
|
| 979 |
if not name or not name.strip():
|
| 980 |
return gr.update(), gr.update(), gr.update(), gr.update(), "" # Don't proceed if name is empty
|
|
|
|
| 982 |
if not medical_school or not medical_school.strip():
|
| 983 |
return gr.update(), gr.update(), gr.update(), gr.update(), "" # Don't proceed if medical school is empty
|
| 984 |
|
| 985 |
+
if not year:
|
| 986 |
+
return gr.update(), gr.update(), gr.update(), gr.update(), "" # Don't proceed if year is not selected
|
| 987 |
+
|
| 988 |
# Save to database
|
| 989 |
+
save_student(name.strip(), medical_school.strip(), year)
|
| 990 |
|
| 991 |
+
greeting = f"**Welcome, Doctor {name}!** 👋 from {medical_school} ({year})"
|
| 992 |
return (
|
| 993 |
gr.update(visible=False), # Hide welcome screen
|
| 994 |
gr.update(visible=True), # Show main app
|
|
|
|
| 999 |
|
| 1000 |
welcome_submit_btn.click(
|
| 1001 |
fn=handle_welcome_submit,
|
| 1002 |
+
inputs=[welcome_name_input, welcome_school_input, welcome_year_input],
|
| 1003 |
outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
|
| 1004 |
)
|
| 1005 |
|
| 1006 |
# Also allow Enter key to submit
|
| 1007 |
welcome_name_input.submit(
|
| 1008 |
fn=handle_welcome_submit,
|
| 1009 |
+
inputs=[welcome_name_input, welcome_school_input, welcome_year_input],
|
| 1010 |
outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
|
| 1011 |
)
|
| 1012 |
|
| 1013 |
welcome_school_input.submit(
|
| 1014 |
fn=handle_welcome_submit,
|
| 1015 |
+
inputs=[welcome_name_input, welcome_school_input, welcome_year_input],
|
| 1016 |
outputs=[welcome_screen, main_app, tabs, student_name_display, student_name_state]
|
| 1017 |
)
|
| 1018 |
|