vladyslav commited on
Commit
aba2007
·
1 Parent(s): f66f95f

Books available only for appropriate classes

Browse files
Files changed (2) hide show
  1. app.py +6 -5
  2. 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(BOOKS.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,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"