51 lines
1.2 KiB
Python
51 lines
1.2 KiB
Python
#!/usr/bin/env python
|
|
# encoding: utf-8
|
|
|
|
import dash_html_components as html
|
|
from recopytex.database.filesystem.loader import CSVLoader
|
|
from .models import get_tribes, get_exams, get_students
|
|
|
|
loader = CSVLoader("./test_config.yml")
|
|
|
|
|
|
def listing(elements, formating=lambda x: x):
|
|
|
|
return html.Ul(
|
|
children=[html.Li(children=formating(element)) for element in elements]
|
|
)
|
|
|
|
|
|
def format_tribe(tribe):
|
|
children = [html.H3(tribe["name"])]
|
|
exams = loader.get_exams([tribe["name"]])
|
|
if exams.empty:
|
|
children.append(html.P("Pas d'évaluation"))
|
|
else:
|
|
exams_html = listing([exam for id, exam in exams.iterrows()], format_exam)
|
|
children.append(exams_html)
|
|
return children
|
|
|
|
|
|
def format_exam(exam):
|
|
children = [html.P(exam["name"])]
|
|
return children
|
|
|
|
|
|
layout = html.Div(
|
|
children=[
|
|
html.H1("Recopytex"),
|
|
html.H2("Tribes"),
|
|
html.Div(
|
|
children=[listing(loader.get_tribes().values(), format_tribe)],
|
|
id="tribes",
|
|
),
|
|
html.H2("Config"),
|
|
html.Div(
|
|
children=[
|
|
html.P(str(loader.get_config())),
|
|
],
|
|
id="config",
|
|
),
|
|
]
|
|
)
|