import sco_formations
import random

# La variable context est définie par le script de lancement
# l'affecte ainsi pour évietr les warnins pylint:
context = context  # pylint: disable=undefined-variable
REQUEST = REQUEST  # pylint: disable=undefined-variable
import scotests.sco_fake_gen as sco_fake_gen  # pylint: disable=import-error
import sco_moduleimpl

G = sco_fake_gen.ScoFake(context.Notes)
G.verbose = False

file = open("scotests/export_formation1.xml")
doc = file.read()
file.close()

print(doc)
print("\n \n \n")
# --- Création de la formation

f = sco_formations.formation_import_xml(doc=doc)


# --- Création des semestres

sem1 = G.create_formsemestre(
    formation_id=f[0],
    semestre_id=1,
    date_debut="01/09/2020",
    date_fin="01/02/2021",
)

sem3 = G.create_formsemestre(
    formation_id=f[0],
    semestre_id=3,
    date_debut="01/09/2020",
    date_fin="01/02/2021",
)

sem2 = G.create_formsemestre(
    formation_id=f[0],
    semestre_id=2,
    date_debut="02/02/2021",
    date_fin="01/06/2021",
)

sem4 = G.create_formsemestre(
    formation_id=f[0],
    semestre_id=4,
    date_debut="02/02/2021",
    date_fin="01/06/2021",
)


# --- Implémentation des modules

li_module = context.Notes.do_module_list()
mods_imp = []
for mod in li_module:
    if mod["semestre_id"] == 1:
        formsemestre_id = sem1["formsemestre_id"]
    elif mod["semestre_id"] == 2:
        formsemestre_id = sem2["formsemestre_id"]
    elif mod["semestre_id"] == 3:
        formsemestre_id = sem3["formsemestre_id"]
    else:
        formsemestre_id = sem4["formsemestre_id"]

    mi = G.create_moduleimpl(
        module_id=mod["module_id"],
        formsemestre_id=formsemestre_id,
        responsable_id="bach",
    )
    mods_imp.append(mi)

# --- Test de export_formation format xml

form_exp = sco_formations.formation_export(
    formation_id=f[0], format="xml", REQUEST=REQUEST
)
print(form_exp[39:])