vladyslav
commited on
Commit
·
aba2007
1
Parent(s):
f66f95f
Books available only for appropriate classes
Browse files- app.py +6 -5
- constants.py +10 -0
app.py
CHANGED
@@ -5,7 +5,7 @@ import random
|
|
5 |
import gradio as gr
|
6 |
from dotenv import load_dotenv
|
7 |
|
8 |
-
from constants import MODELS, MODELS_PATH, BOOKS, CLASSES, STUDENTS, MODEL_NAME_TO_CHOICE
|
9 |
from utils import save_results, get_test_by_student_class_book
|
10 |
|
11 |
load_dotenv()
|
@@ -249,7 +249,7 @@ def update_students(class_name, available_models):
|
|
249 |
students = STUDENTS.get(class_name, [])
|
250 |
return (
|
251 |
gr.update(choices=students, value=None, visible=True), # student_name_input
|
252 |
-
gr.update(choices=[], value=None, visible=False), # book_radio
|
253 |
gr.update(choices=available_models, value=None, visible=False), # model_radio
|
254 |
gr.update(value=""), # questions_output
|
255 |
gr.update(choices=[], value=None, visible=False), # answer_radio
|
@@ -270,7 +270,7 @@ def update_students(class_name, available_models):
|
|
270 |
)
|
271 |
|
272 |
|
273 |
-
def handle_student_name_change(student_name, available_models):
|
274 |
print("handle_student_name_change", available_models)
|
275 |
if student_name == "Вчитель":
|
276 |
available_models = list(MODELS.keys())
|
@@ -278,7 +278,7 @@ def handle_student_name_change(student_name, available_models):
|
|
278 |
print("handle_student_name_change available_models: ", available_models)
|
279 |
if not student_name:
|
280 |
return (
|
281 |
-
gr.update(choices=[], value=None, visible=False), # book_radio
|
282 |
gr.update(choices=available_models, value=None, visible=False), # model_radio
|
283 |
gr.update(value=""), # questions_output
|
284 |
gr.update(choices=[], value=None, visible=False), # answer_radio
|
@@ -299,7 +299,7 @@ def handle_student_name_change(student_name, available_models):
|
|
299 |
)
|
300 |
|
301 |
return (
|
302 |
-
gr.update(choices=list(
|
303 |
gr.update(choices=available_models, value=None, visible=False), # model_radio
|
304 |
gr.update(value=""), # questions_output
|
305 |
gr.update(choices=[], value=None, visible=False), # answer_radio
|
@@ -513,6 +513,7 @@ with gr.Blocks() as demo:
|
|
513 |
inputs=[
|
514 |
student_name_input,
|
515 |
available_models_state,
|
|
|
516 |
],
|
517 |
outputs=[
|
518 |
book_radio,
|
|
|
5 |
import gradio as gr
|
6 |
from dotenv import load_dotenv
|
7 |
|
8 |
+
from constants import MODELS, MODELS_PATH, BOOKS, CLASSES, STUDENTS, MODEL_NAME_TO_CHOICE, BOOKS_FOR_CLASSES
|
9 |
from utils import save_results, get_test_by_student_class_book
|
10 |
|
11 |
load_dotenv()
|
|
|
249 |
students = STUDENTS.get(class_name, [])
|
250 |
return (
|
251 |
gr.update(choices=students, value=None, visible=True), # student_name_input
|
252 |
+
gr.update(choices=list(BOOKS_FOR_CLASSES[class_name].keys()), value=None, visible=False), # book_radio
|
253 |
gr.update(choices=available_models, value=None, visible=False), # model_radio
|
254 |
gr.update(value=""), # questions_output
|
255 |
gr.update(choices=[], value=None, visible=False), # answer_radio
|
|
|
270 |
)
|
271 |
|
272 |
|
273 |
+
def handle_student_name_change(student_name, available_models, class_name):
|
274 |
print("handle_student_name_change", available_models)
|
275 |
if student_name == "Вчитель":
|
276 |
available_models = list(MODELS.keys())
|
|
|
278 |
print("handle_student_name_change available_models: ", available_models)
|
279 |
if not student_name:
|
280 |
return (
|
281 |
+
gr.update(choices=list(BOOKS_FOR_CLASSES[class_name].keys()), value=None, visible=False), # book_radio
|
282 |
gr.update(choices=available_models, value=None, visible=False), # model_radio
|
283 |
gr.update(value=""), # questions_output
|
284 |
gr.update(choices=[], value=None, visible=False), # answer_radio
|
|
|
299 |
)
|
300 |
|
301 |
return (
|
302 |
+
gr.update(choices=list(BOOKS_FOR_CLASSES[class_name].keys()), value=None, visible=True), # book_radio
|
303 |
gr.update(choices=available_models, value=None, visible=False), # model_radio
|
304 |
gr.update(value=""), # questions_output
|
305 |
gr.update(choices=[], value=None, visible=False), # answer_radio
|
|
|
513 |
inputs=[
|
514 |
student_name_input,
|
515 |
available_models_state,
|
516 |
+
class_name_input,
|
517 |
],
|
518 |
outputs=[
|
519 |
book_radio,
|
constants.py
CHANGED
@@ -30,6 +30,16 @@ BOOKS = {
|
|
30 |
"Іван Нечуйлевицький - Кайдашева сім'я": "kaydasheva-simia.json",
|
31 |
}
|
32 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
CLASSES = [
|
34 |
# "7-A", "7-B", "7-C", "7-D",
|
35 |
"9", "10"
|
|
|
30 |
"Іван Нечуйлевицький - Кайдашева сім'я": "kaydasheva-simia.json",
|
31 |
}
|
32 |
|
33 |
+
BOOKS_FOR_CLASSES = {
|
34 |
+
"9": {
|
35 |
+
"Тарас Шевченко - Катерина": "katerina.json",
|
36 |
+
"Тарас Шевченко - Сон (комедія)": "son.json",
|
37 |
+
},
|
38 |
+
"10": {
|
39 |
+
"Іван Нечуйлевицький - Кайдашева сім'я": "kaydasheva-simia.json",
|
40 |
+
},
|
41 |
+
}
|
42 |
+
|
43 |
CLASSES = [
|
44 |
# "7-A", "7-B", "7-C", "7-D",
|
45 |
"9", "10"
|