vladyslav commited on
Commit
186dae7
·
1 Parent(s): 99b8fc4

Class and student name are dropdowns now

Browse files
Files changed (2) hide show
  1. app.py +14 -5
  2. constants.py +63 -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
9
  from utils import save_results
10
 
11
  load_dotenv()
@@ -35,7 +35,7 @@ def load_questions(model, book, student_name, class_name):
35
  current_question_index = 0
36
  answers_log.clear()
37
 
38
- if not model or not book or not student_name or not class_name:
39
  return "# Будь ласка, заповніть усі поля!", []
40
 
41
  model_path = MODELS_PATH[model]
@@ -206,16 +206,20 @@ def prepare_questions_for_feedback(questions, answer_log):
206
  return "\n".join(feedback)
207
 
208
 
 
 
 
 
209
  with gr.Blocks() as demo:
210
  with gr.Column():
211
  gr.Markdown("# Оберіть модель та книгу, щоб завантажити питання")
212
 
213
- student_name_input = gr.Textbox(label="Ваше ім'я")
214
- class_name_input = gr.Textbox(label="Ваш клас")
215
  model_radio = gr.Radio(list(MODELS.keys()), label="Оберіть модель")
216
  book_radio = gr.Radio(list(BOOKS.keys()), label="Оберіть книгу")
217
-
218
  load_button = gr.Button("Завантажити питання")
 
219
  question_output = gr.Markdown(label="Питання")
220
  answer_radio = gr.Radio([], label="Варіанти відповіді", interactive=True, visible=False)
221
  next_button = gr.Button("Наступне питання", visible=False)
@@ -235,6 +239,11 @@ with gr.Blocks() as demo:
235
  rating_buttons = gr.Radio([-2, -1, 0, 1, 2], label="Оцініть тест", visible=False, interactive=True)
236
  submit_feedback_button = gr.Button("Завершити тест", visible=False)
237
 
 
 
 
 
 
238
 
239
  def update_question(model, book, student_name, class_name):
240
  question, answers = load_questions(model, book, student_name, class_name)
 
5
  import gradio as gr
6
  from dotenv import load_dotenv
7
 
8
+ from constants import MODELS, MODELS_PATH, BOOKS, CLASSES, STUDENTS
9
  from utils import save_results
10
 
11
  load_dotenv()
 
35
  current_question_index = 0
36
  answers_log.clear()
37
 
38
+ if not model or not book or student_name is None or class_name is None:
39
  return "# Будь ласка, заповніть усі поля!", []
40
 
41
  model_path = MODELS_PATH[model]
 
206
  return "\n".join(feedback)
207
 
208
 
209
+ def update_students(class_name):
210
+ students = STUDENTS.get(class_name, [])
211
+ return gr.update(choices=students, value=None, visible=True)
212
+
213
  with gr.Blocks() as demo:
214
  with gr.Column():
215
  gr.Markdown("# Оберіть модель та книгу, щоб завантажити питання")
216
 
217
+ class_name_input = gr.Dropdown(choices=CLASSES, label="Ваш клас", value=None)
218
+ student_name_input = gr.Dropdown(label="Ваше ім'я", value=None, visible=False)
219
  model_radio = gr.Radio(list(MODELS.keys()), label="Оберіть модель")
220
  book_radio = gr.Radio(list(BOOKS.keys()), label="Оберіть книгу")
 
221
  load_button = gr.Button("Завантажити питання")
222
+
223
  question_output = gr.Markdown(label="Питання")
224
  answer_radio = gr.Radio([], label="Варіанти відповіді", interactive=True, visible=False)
225
  next_button = gr.Button("Наступне питання", visible=False)
 
239
  rating_buttons = gr.Radio([-2, -1, 0, 1, 2], label="Оцініть тест", visible=False, interactive=True)
240
  submit_feedback_button = gr.Button("Завершити тест", visible=False)
241
 
242
+ class_name_input.change(
243
+ update_students,
244
+ inputs=[class_name_input],
245
+ outputs=[student_name_input]
246
+ )
247
 
248
  def update_question(model, book, student_name, class_name):
249
  question, answers = load_questions(model, book, student_name, class_name)
constants.py CHANGED
@@ -14,3 +14,66 @@ BOOKS = {
14
  # "Іван Нечуйлевицький - Кайдашева Сім'я": "nechuy-levytskyy-ivan-semenovych-kaydasheva-simia.json",
15
  "Іван Франко - Захар Беркут": "zahar-berkut.json",
16
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
14
  # "Іван Нечуйлевицький - Кайдашева Сім'я": "nechuy-levytskyy-ivan-semenovych-kaydasheva-simia.json",
15
  "Іван Франко - Захар Беркут": "zahar-berkut.json",
16
  }
17
+
18
+ CLASSES = ["7-A", "7-B", "7-C", "7-D"]
19
+
20
+ STUDENTS = {
21
+ "7-A": [
22
+ "Гайворонський Владислав",
23
+ "Гордін Георгій",
24
+ "Гуменний Станіслав",
25
+ "Денчик Данило",
26
+ "Кичила Ілля",
27
+ "Климчкук Марія",
28
+ "Коньков Владислав",
29
+ "Молчанов Лев",
30
+ "Нємець Майя",
31
+ "Панасенко Микита",
32
+ "Паславська Марія",
33
+ "Рипаленко Артем",
34
+ "Савченко Роман",
35
+ "Смолкіна Соф'я",
36
+ "Страховецька Софія",
37
+ ],
38
+ "7-B": [
39
+ "Авдєєва Аліса",
40
+ "Агапов Олександр",
41
+ "Горюн Любава",
42
+ "Доротюк Варвара",
43
+ "Дробот Дмитро",
44
+ "Зіоменко Олег",
45
+ "Золотько Варвара",
46
+ "Ільєнко Софія",
47
+ "Книш Ксенія",
48
+ "Кувалдіна Катерина",
49
+ "Лемішев Кирило",
50
+ "Хоменко Валерія",
51
+ "Хорошавіна Софія",
52
+ "Шепеленко Віола",
53
+ "Щербина Герасим",
54
+ ],
55
+ "7-C": [
56
+ "Безрук Дар'я",
57
+ "Бець Вероніка",
58
+ "Головньова Владислава",
59
+ "Данченков Микита",
60
+ "Кадничанський Іосиф",
61
+ "Конопельцева Мілана",
62
+ "Муковоз Гліб",
63
+ "Положій Захар",
64
+ "Поручіков Владислав",
65
+ "Прокіпець Вероніка",
66
+ "Сирота Дмитро",
67
+ "Сомов Максим",
68
+ "Таран Вікторія",
69
+ "Чумачок Софія",
70
+ "Шигалевська Марія",
71
+ ],
72
+ "7-D": [
73
+ "Капустеринська Аліса",
74
+ "Леонідова Мілада",
75
+ "Олійник Давід",
76
+ "Шевченко Олександра",
77
+ "Щербакова Марія",
78
+ ]
79
+ }