forked from ScoDoc/ScoDoc
Compare commits
No commits in common. "313be66b5ed64ef5ccac28b0f9a140cf051843a7" and "0a767ed4757f317bb7e6cfd38c7fced58a4773d3" have entirely different histories.
313be66b5e
...
0a767ed475
@ -1,14 +1,13 @@
|
|||||||
# -*- mode: python -*-
|
# -*- mode: python -*-
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
SCOVERSION = "7.25m"
|
SCOVERSION = "7.25"
|
||||||
|
|
||||||
SCONAME = "ScoDoc"
|
SCONAME = "ScoDoc"
|
||||||
|
|
||||||
SCONEWS = """
|
SCONEWS = """
|
||||||
<h4>Année 2021</h4>
|
<h4>Année 2021</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Version mobile (en test)</li>
|
|
||||||
<li>Évaluations de type "deuxième session"</li>
|
<li>Évaluations de type "deuxième session"</li>
|
||||||
<li>Gestion du genre neutre (pas d'affichage de la civilité)</li>
|
<li>Gestion du genre neutre (pas d'affichage de la civilité)</li>
|
||||||
<li>Diverses corrections (PV de jurys, ...)</li>
|
<li>Diverses corrections (PV de jurys, ...)</li>
|
||||||
|
@ -504,11 +504,6 @@ class ZScoDoc(ObjectManager, PropertyManager, RoleManager, Item, Persistent, Imp
|
|||||||
% REQUEST.BASE0
|
% REQUEST.BASE0
|
||||||
)
|
)
|
||||||
|
|
||||||
# Lien expérimental temporaire:
|
|
||||||
H.append(
|
|
||||||
'<p><a href="/ScoDoc/static/mobile">Version mobile (expérimentale, à vos risques et périls)</a></p>'
|
|
||||||
)
|
|
||||||
|
|
||||||
H.append(
|
H.append(
|
||||||
"""
|
"""
|
||||||
<div id="scodoc_attribution">
|
<div id="scodoc_attribution">
|
||||||
|
@ -45,16 +45,9 @@ def bonus_iutv(notes_sport, coefs, infos=None):
|
|||||||
return bonus
|
return bonus
|
||||||
|
|
||||||
|
|
||||||
def bonus_direct(notes_sport, coefs, infos=None):
|
|
||||||
"""Un bonus direct et sans chichis: les points sont directement ajoutés à la moyenne générale.
|
|
||||||
Les coefficients sont ignorés: tous les points de bonus sont sommés.
|
|
||||||
(rappel: la note est ramenée sur 20 avant application).
|
|
||||||
"""
|
|
||||||
return sum(notes_sport)
|
|
||||||
|
|
||||||
|
|
||||||
def bonus_iut_stdenis(notes_sport, coefs, infos=None):
|
def bonus_iut_stdenis(notes_sport, coefs, infos=None):
|
||||||
"""Semblable à bonus_iutv mais sans coefficients et total limité à 0.5 points."""
|
"""Semblable à bonus_iutv mais sans coefficients et total limité à 0.5 points.
|
||||||
|
"""
|
||||||
points = sum([x - 10 for x in notes_sport if x > 10]) # points au dessus de 10
|
points = sum([x - 10 for x in notes_sport if x > 10]) # points au dessus de 10
|
||||||
bonus = points * 0.05 # ou / 20
|
bonus = points * 0.05 # ou / 20
|
||||||
return min(bonus, 0.5) # bonus limité à 1/2 point
|
return min(bonus, 0.5) # bonus limité à 1/2 point
|
||||||
@ -100,6 +93,35 @@ def bonus_iutva(notes_sport, coefs, infos=None):
|
|||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
# XXX Inutilisé (mai 2020) ? à confirmer avant suppression XXX
|
||||||
|
# def bonus_iut1grenoble_v0(notes_sport, coefs, infos=None):
|
||||||
|
# """Calcul bonus sport IUT Grenoble sur la moyenne générale
|
||||||
|
#
|
||||||
|
# La note de sport de nos étudiants va de 0 à 5 points.
|
||||||
|
# Chaque point correspond à un % qui augmente la moyenne de chaque UE et la moyenne générale.
|
||||||
|
# Par exemple : note de sport 2/5 : chaque UE sera augmentée de 2%, ainsi que la moyenne générale.
|
||||||
|
#
|
||||||
|
# Calcul ici du bonus sur moyenne générale et moyennes d'UE non capitalisées.
|
||||||
|
# """
|
||||||
|
# # les coefs sont ignorés
|
||||||
|
# # notes de 0 à 5
|
||||||
|
# points = sum([x for x in notes_sport])
|
||||||
|
# factor = (points / 4.0) / 100.0
|
||||||
|
# bonus = infos["moy"] * factor
|
||||||
|
# # Modifie les moyennes de toutes les UE:
|
||||||
|
# for ue_id in infos["moy_ues"]:
|
||||||
|
# ue_status = infos["moy_ues"][ue_id]
|
||||||
|
# if ue_status["sum_coefs"] > 0:
|
||||||
|
# # modifie moyenne UE ds semestre courant
|
||||||
|
# ue_status["cur_moy_ue"] = ue_status["cur_moy_ue"] * (1.0 + factor)
|
||||||
|
# if not ue_status["is_capitalized"]:
|
||||||
|
# # si non capitalisee, modifie moyenne prise en compte
|
||||||
|
# ue_status["moy"] = ue_status["cur_moy_ue"]
|
||||||
|
#
|
||||||
|
# # open('/tmp/log','a').write( pprint.pformat(ue_status) + '\n\n' )
|
||||||
|
# return bonus
|
||||||
|
|
||||||
|
|
||||||
def bonus_iut1grenoble_2017(notes_sport, coefs, infos=None):
|
def bonus_iut1grenoble_2017(notes_sport, coefs, infos=None):
|
||||||
"""Calcul bonus sport IUT Grenoble sur la moyenne générale (version 2017)
|
"""Calcul bonus sport IUT Grenoble sur la moyenne générale (version 2017)
|
||||||
|
|
||||||
@ -140,14 +162,14 @@ def bonus_lille(notes_sport, coefs, infos=None):
|
|||||||
def bonus_iutlh(notes_sport, coefs, infos=None):
|
def bonus_iutlh(notes_sport, coefs, infos=None):
|
||||||
"""Calcul bonus sport IUT du Havre sur moyenne générale et UE
|
"""Calcul bonus sport IUT du Havre sur moyenne générale et UE
|
||||||
|
|
||||||
La note de sport de nos étudiants va de 0 à 20 points.
|
La note de sport de nos étudiants va de 0 à 20 points.
|
||||||
m2=m1*(1+0.005*((10-N1)+(10-N2))
|
m2=m1*(1+0.005*((10-N1)+(10-N2))
|
||||||
m2 : Nouvelle moyenne de l'unité d'enseignement si note de sport et/ou de langue supérieure à 10
|
m2 : Nouvelle moyenne de l'unité d'enseignement si note de sport et/ou de langue supérieure à 10
|
||||||
m1 : moyenne de l'unité d'enseignement avant bonification
|
m1 : moyenne de l'unité d'enseignement avant bonification
|
||||||
N1 : note de sport si supérieure à 10
|
N1 : note de sport si supérieure à 10
|
||||||
N2 : note de seconde langue si supérieure à 10
|
N2 : note de seconde langue si supérieure à 10
|
||||||
Par exemple : sport 15/20 et langue 12/20 : chaque UE sera multipliée par 1+0.005*7, ainsi que la moyenne générale.
|
Par exemple : sport 15/20 et langue 12/20 : chaque UE sera multipliée par 1+0.005*7, ainsi que la moyenne générale.
|
||||||
Calcul ici de la moyenne générale et moyennes d'UE non capitalisées.
|
Calcul ici de la moyenne générale et moyennes d'UE non capitalisées.
|
||||||
"""
|
"""
|
||||||
# les coefs sont ignorés
|
# les coefs sont ignorés
|
||||||
points = sum([x - 10 for x in notes_sport if x > 10])
|
points = sum([x - 10 for x in notes_sport if x > 10])
|
||||||
@ -183,8 +205,8 @@ def bonus_tours(notes_sport, coefs, infos=None):
|
|||||||
def bonus_iutr(notes_sport, coefs, infos=None):
|
def bonus_iutr(notes_sport, coefs, infos=None):
|
||||||
"""Calcul du bonus , regle de l'IUT de Roanne (contribuée par Raphael C., nov 2012)
|
"""Calcul du bonus , regle de l'IUT de Roanne (contribuée par Raphael C., nov 2012)
|
||||||
|
|
||||||
Le bonus est compris entre 0 et 0.35 point.
|
Le bonus est compris entre 0 et 0.35 point.
|
||||||
cette procédure modifie la moyenne de chaque UE capitalisable.
|
cette procédure modifie la moyenne de chaque UE capitalisable.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
# modifie les moyennes de toutes les UE:
|
# modifie les moyennes de toutes les UE:
|
||||||
|
6
debug.py
6
debug.py
@ -67,11 +67,7 @@ def go(app, n=0, verbose=True):
|
|||||||
def go_dept(app, dept, verbose=True):
|
def go_dept(app, dept, verbose=True):
|
||||||
objs = app.ScoDoc.objectValues("Folder")
|
objs = app.ScoDoc.objectValues("Folder")
|
||||||
for o in objs:
|
for o in objs:
|
||||||
try:
|
context = o.Scolarite
|
||||||
context = o.Scolarite
|
|
||||||
except AttributeError:
|
|
||||||
# ignore other folders, like old "icons"
|
|
||||||
continue
|
|
||||||
if context.DeptId() == dept:
|
if context.DeptId() == dept:
|
||||||
if verbose:
|
if verbose:
|
||||||
print("context in dept ", context.DeptId())
|
print("context in dept ", context.DeptId())
|
||||||
|
@ -1,74 +0,0 @@
|
|||||||
# -*- mode: python -*-
|
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
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()
|
|
||||||
|
|
||||||
|
|
||||||
# --- Création de la formation
|
|
||||||
|
|
||||||
f = sco_formations.formation_import_xml(REQUEST=REQUEST, doc=doc, context=context.Notes)
|
|
||||||
|
|
||||||
# --- 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)
|
|
@ -1,105 +0,0 @@
|
|||||||
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()
|
|
||||||
|
|
||||||
|
|
||||||
# --- Création de la formation
|
|
||||||
|
|
||||||
f = sco_formations.formation_import_xml(REQUEST=REQUEST, doc=doc, context=context.Notes)
|
|
||||||
|
|
||||||
# --- 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)
|
|
||||||
|
|
||||||
# --- Création des étudiants
|
|
||||||
|
|
||||||
etuds=[]
|
|
||||||
for nom, prenom in [
|
|
||||||
("Semestre1", "EtudiantNumero1"),
|
|
||||||
("Semestre1", "EtudiantNumero2"),
|
|
||||||
("Semestre2", "EtudiantNumero3"),
|
|
||||||
("Semestre2", "EtudiantNumero4"),
|
|
||||||
("Semestre3", "EtudiantNumero5"),
|
|
||||||
("Semestre3", "EtudiantNumero6"),
|
|
||||||
("Semestre4", "EtudiantNumero7"),
|
|
||||||
("Semestre4", "EtudiantNumero8")
|
|
||||||
] :
|
|
||||||
etud = G.create_etud(
|
|
||||||
nom=nom,
|
|
||||||
prenom=prenom,
|
|
||||||
)
|
|
||||||
etuds.append(etud)
|
|
||||||
|
|
||||||
# --- Inscription des étudiants
|
|
||||||
|
|
||||||
for etud in etuds[0:2]:
|
|
||||||
G.inscrit_etudiant(sem1, etud)
|
|
||||||
|
|
||||||
for etud in etuds[2:4]:
|
|
||||||
G.inscrit_etudiant(sem2, etud)
|
|
||||||
|
|
||||||
for etud in etuds[4:6]:
|
|
||||||
G.inscrit_etudiant(sem3, etud)
|
|
||||||
|
|
||||||
for etud in etuds[6:]:
|
|
||||||
G.inscrit_etudiant(sem4, etud)
|
|
@ -1,135 +0,0 @@
|
|||||||
import sco_formations
|
|
||||||
import json
|
|
||||||
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()
|
|
||||||
|
|
||||||
|
|
||||||
# --- Création de la formation
|
|
||||||
|
|
||||||
f = sco_formations.formation_import_xml(REQUEST=REQUEST, doc=doc, context=context.Notes)
|
|
||||||
|
|
||||||
# --- 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)
|
|
||||||
|
|
||||||
# --- Création des étudiants
|
|
||||||
|
|
||||||
etuds=[]
|
|
||||||
for nom, prenom in [
|
|
||||||
("Semestre1", "EtudiantNumero1"),
|
|
||||||
("Semestre1", "EtudiantNumero2"),
|
|
||||||
("Semestre2", "EtudiantNumero3"),
|
|
||||||
("Semestre2", "EtudiantNumero4"),
|
|
||||||
("Semestre3", "EtudiantNumero5"),
|
|
||||||
("Semestre3", "EtudiantNumero6"),
|
|
||||||
("Semestre4", "EtudiantNumero7"),
|
|
||||||
("Semestre4", "EtudiantNumero8")
|
|
||||||
] :
|
|
||||||
etud = G.create_etud(
|
|
||||||
nom=nom,
|
|
||||||
prenom=prenom,
|
|
||||||
)
|
|
||||||
etuds.append(etud)
|
|
||||||
|
|
||||||
# --- Inscription des étudiants
|
|
||||||
|
|
||||||
for etud in etuds[0:2]:
|
|
||||||
G.inscrit_etudiant(sem1, etud)
|
|
||||||
|
|
||||||
for etud in etuds[2:4]:
|
|
||||||
G.inscrit_etudiant(sem2, etud)
|
|
||||||
|
|
||||||
for etud in etuds[4:6]:
|
|
||||||
G.inscrit_etudiant(sem3, etud)
|
|
||||||
|
|
||||||
for etud in etuds[6:]:
|
|
||||||
G.inscrit_etudiant(sem4, etud)
|
|
||||||
|
|
||||||
# --- Création d'une évaluation pour chaque UE
|
|
||||||
|
|
||||||
lim_sem1 = sco_moduleimpl.do_moduleimpl_list(context.Notes, formsemestre_id=sem1["formsemestre_id"], REQUEST=REQUEST)
|
|
||||||
load_lim_sem1 = json.loads(lim_sem1)
|
|
||||||
|
|
||||||
lim_sem2 = sco_moduleimpl.do_moduleimpl_list(context.Notes, formsemestre_id=sem2["formsemestre_id"], REQUEST=REQUEST)
|
|
||||||
load_lim_sem2 = json.loads(lim_sem2)
|
|
||||||
|
|
||||||
lim_sem3 = sco_moduleimpl.do_moduleimpl_list(context.Notes, formsemestre_id=sem3["formsemestre_id"], REQUEST=REQUEST)
|
|
||||||
load_lim_sem3 = json.loads(lim_sem3)
|
|
||||||
|
|
||||||
lim_sem4 = sco_moduleimpl.do_moduleimpl_list(context.Notes, formsemestre_id=sem4["formsemestre_id"], REQUEST=REQUEST)
|
|
||||||
load_lim_sem4 = json.loads(lim_sem4)
|
|
||||||
|
|
||||||
|
|
||||||
for moduleimpl_id, jour, description, coefficient in [
|
|
||||||
(load_lim_sem1[1]["moduleimpl_id"], "02/09/2020", "InterroTestSemestre1", 1.0),
|
|
||||||
(load_lim_sem1[2]["moduleimpl_id"], "03/09/2020", "InterroTestSemestre1", 1.0),
|
|
||||||
(load_lim_sem2[1]["moduleimpl_id"], "03/02/2021", "InterroTestSemestre2", 1.0),
|
|
||||||
(load_lim_sem2[8]["moduleimpl_id"], "04/02/2021", "InterroTestSemestre2", 1.0),
|
|
||||||
(load_lim_sem3[3]["moduleimpl_id"], "02/09/2020", "InterroTestSemestre3", 1.0),
|
|
||||||
(load_lim_sem3[9]["moduleimpl_id"], "03/09/2020", "InterroTestSemestre3", 1.0),
|
|
||||||
(load_lim_sem3[15]["moduleimpl_id"], "04/09/2020", "InterroTestSemestre3", 1.0),
|
|
||||||
(load_lim_sem4[3]["moduleimpl_id"], "03/02/2021", "InterroTestSemestre4", 1.0),
|
|
||||||
(load_lim_sem4[9]["moduleimpl_id"], "04/02/2021", "InterroTestSemestre4", 1.0),
|
|
||||||
(load_lim_sem4[13]["moduleimpl_id"], "05/02/2021", "InterroTestSemestre4", 1.0),
|
|
||||||
] :
|
|
||||||
e = G.create_evaluation(moduleimpl_id=moduleimpl_id, jour=jour, description=description, coefficient=coefficient)
|
|
@ -1,172 +0,0 @@
|
|||||||
import sco_formations
|
|
||||||
import json
|
|
||||||
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()
|
|
||||||
|
|
||||||
|
|
||||||
# --- Création de la formation
|
|
||||||
|
|
||||||
f = sco_formations.formation_import_xml(REQUEST=REQUEST, doc=doc, context=context.Notes)
|
|
||||||
|
|
||||||
# --- 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)
|
|
||||||
|
|
||||||
# --- Création des étudiants
|
|
||||||
|
|
||||||
etuds=[]
|
|
||||||
for nom, prenom in [
|
|
||||||
("Semestre1", "EtudiantNumero1"),
|
|
||||||
("Semestre1", "EtudiantNumero2"),
|
|
||||||
("Semestre2", "EtudiantNumero3"),
|
|
||||||
("Semestre2", "EtudiantNumero4"),
|
|
||||||
("Semestre3", "EtudiantNumero5"),
|
|
||||||
("Semestre3", "EtudiantNumero6"),
|
|
||||||
("Semestre4", "EtudiantNumero7"),
|
|
||||||
("Semestre4", "EtudiantNumero8")
|
|
||||||
] :
|
|
||||||
etud = G.create_etud(
|
|
||||||
nom=nom,
|
|
||||||
prenom=prenom,
|
|
||||||
)
|
|
||||||
etuds.append(etud)
|
|
||||||
|
|
||||||
# --- Inscription des étudiants
|
|
||||||
|
|
||||||
for etud in etuds[0:2]:
|
|
||||||
G.inscrit_etudiant(sem1, etud)
|
|
||||||
|
|
||||||
for etud in etuds[2:4]:
|
|
||||||
G.inscrit_etudiant(sem2, etud)
|
|
||||||
|
|
||||||
for etud in etuds[4:6]:
|
|
||||||
G.inscrit_etudiant(sem3, etud)
|
|
||||||
|
|
||||||
for etud in etuds[6:]:
|
|
||||||
G.inscrit_etudiant(sem4, etud)
|
|
||||||
|
|
||||||
# --- Création d'une évaluation pour chaque UE
|
|
||||||
|
|
||||||
lim_sem1 = sco_moduleimpl.do_moduleimpl_list(context.Notes, formsemestre_id=sem1["formsemestre_id"], REQUEST=REQUEST)
|
|
||||||
load_lim_sem1 = json.loads(lim_sem1)
|
|
||||||
|
|
||||||
lim_sem2 = sco_moduleimpl.do_moduleimpl_list(context.Notes, formsemestre_id=sem2["formsemestre_id"], REQUEST=REQUEST)
|
|
||||||
load_lim_sem2 = json.loads(lim_sem2)
|
|
||||||
|
|
||||||
lim_sem3 = sco_moduleimpl.do_moduleimpl_list(context.Notes, formsemestre_id=sem3["formsemestre_id"], REQUEST=REQUEST)
|
|
||||||
load_lim_sem3 = json.loads(lim_sem3)
|
|
||||||
|
|
||||||
lim_sem4 = sco_moduleimpl.do_moduleimpl_list(context.Notes, formsemestre_id=sem4["formsemestre_id"], REQUEST=REQUEST)
|
|
||||||
load_lim_sem4 = json.loads(lim_sem4)
|
|
||||||
|
|
||||||
|
|
||||||
for moduleimpl_id, jour, description, coefficient in [
|
|
||||||
(load_lim_sem1[1]["moduleimpl_id"], "02/09/2020", "InterroTestSemestre1", 1.0),
|
|
||||||
(load_lim_sem1[2]["moduleimpl_id"], "03/09/2020", "InterroTestSemestre1", 1.0),
|
|
||||||
(load_lim_sem2[1]["moduleimpl_id"], "03/02/2021", "InterroTestSemestre2", 1.0),
|
|
||||||
(load_lim_sem2[8]["moduleimpl_id"], "04/02/2021", "InterroTestSemestre2", 1.0),
|
|
||||||
(load_lim_sem3[3]["moduleimpl_id"], "02/09/2020", "InterroTestSemestre3", 1.0),
|
|
||||||
(load_lim_sem3[9]["moduleimpl_id"], "03/09/2020", "InterroTestSemestre3", 1.0),
|
|
||||||
(load_lim_sem3[15]["moduleimpl_id"], "04/09/2020", "InterroTestSemestre3", 1.0),
|
|
||||||
(load_lim_sem4[3]["moduleimpl_id"], "03/02/2021", "InterroTestSemestre4", 1.0),
|
|
||||||
(load_lim_sem4[9]["moduleimpl_id"], "04/02/2021", "InterroTestSemestre4", 1.0),
|
|
||||||
(load_lim_sem4[13]["moduleimpl_id"], "05/02/2021", "InterroTestSemestre4", 1.0),
|
|
||||||
] :
|
|
||||||
e = G.create_evaluation(moduleimpl_id=moduleimpl_id, jour=jour, description=description, coefficient=coefficient)
|
|
||||||
|
|
||||||
|
|
||||||
# --- Saisie des notes des étudiants (un élève a 12, un autre a 7 pour chaque semestre)
|
|
||||||
|
|
||||||
lie1 = context.Notes.do_evaluation_list_in_formsemestre(formsemestre_id=sem1["formsemestre_id"])
|
|
||||||
lie2 = context.Notes.do_evaluation_list_in_formsemestre(formsemestre_id=sem2["formsemestre_id"])
|
|
||||||
lie3 = context.Notes.do_evaluation_list_in_formsemestre(formsemestre_id=sem3["formsemestre_id"])
|
|
||||||
lie4 = context.Notes.do_evaluation_list_in_formsemestre(formsemestre_id=sem4["formsemestre_id"])
|
|
||||||
|
|
||||||
for eval in lie1 :
|
|
||||||
for etud in etuds[:2] :
|
|
||||||
if etud == etuds[0] :
|
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(evaluation=eval, etud=etud, note=12.0)
|
|
||||||
else :
|
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(evaluation=eval, etud=etud, note=7.0)
|
|
||||||
|
|
||||||
for eval in lie2 :
|
|
||||||
for etud in etuds[2:4] :
|
|
||||||
if etud == etuds[2] :
|
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(evaluation=eval, etud=etud, note=12.0)
|
|
||||||
else :
|
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(evaluation=eval, etud=etud, note=7.0)
|
|
||||||
|
|
||||||
|
|
||||||
for eval in lie3 :
|
|
||||||
for etud in etuds[4:6] :
|
|
||||||
if etud == etuds[4] :
|
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(evaluation=eval, etud=etud, note=12.0)
|
|
||||||
else :
|
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(evaluation=eval, etud=etud, note=7.0)
|
|
||||||
|
|
||||||
for eval in lie4 :
|
|
||||||
for etud in etuds[6:] :
|
|
||||||
if etud == etuds[6] :
|
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(evaluation=eval, etud=etud, note=12.0)
|
|
||||||
else :
|
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(evaluation=eval, etud=etud, note=7.0)
|
|
@ -1,25 +0,0 @@
|
|||||||
{
|
|
||||||
"files": {
|
|
||||||
"main.css": "./static/css/main.6be5a531.chunk.css",
|
|
||||||
"main.js": "./static/js/main.9d1150c9.chunk.js",
|
|
||||||
"main.js.map": "./static/js/main.9d1150c9.chunk.js.map",
|
|
||||||
"runtime-main.js": "./static/js/runtime-main.b827b16d.js",
|
|
||||||
"runtime-main.js.map": "./static/js/runtime-main.b827b16d.js.map",
|
|
||||||
"static/css/2.4c97ca4f.chunk.css": "./static/css/2.4c97ca4f.chunk.css",
|
|
||||||
"static/js/2.68967b49.chunk.js": "./static/js/2.68967b49.chunk.js",
|
|
||||||
"static/js/2.68967b49.chunk.js.map": "./static/js/2.68967b49.chunk.js.map",
|
|
||||||
"static/js/3.d2558866.chunk.js": "./static/js/3.d2558866.chunk.js",
|
|
||||||
"static/js/3.d2558866.chunk.js.map": "./static/js/3.d2558866.chunk.js.map",
|
|
||||||
"index.html": "./index.html",
|
|
||||||
"static/css/2.4c97ca4f.chunk.css.map": "./static/css/2.4c97ca4f.chunk.css.map",
|
|
||||||
"static/css/main.6be5a531.chunk.css.map": "./static/css/main.6be5a531.chunk.css.map",
|
|
||||||
"static/js/2.68967b49.chunk.js.LICENSE.txt": "./static/js/2.68967b49.chunk.js.LICENSE.txt"
|
|
||||||
},
|
|
||||||
"entrypoints": [
|
|
||||||
"static/js/runtime-main.b827b16d.js",
|
|
||||||
"static/css/2.4c97ca4f.chunk.css",
|
|
||||||
"static/js/2.68967b49.chunk.js",
|
|
||||||
"static/css/main.6be5a531.chunk.css",
|
|
||||||
"static/js/main.9d1150c9.chunk.js"
|
|
||||||
]
|
|
||||||
}
|
|
Binary file not shown.
Before Width: | Height: | Size: 15 KiB |
@ -1 +0,0 @@
|
|||||||
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="./favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><meta name="description" content="Scodoc Mobile"/><link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"><link rel="apple-touch-icon" href="./scologo.png"/><link rel="manifest" href="./manifest.json"/><title>Scodoc Mobile</title><link href="./static/css/2.4c97ca4f.chunk.css" rel="stylesheet"><link href="./static/css/main.6be5a531.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>!function(e){function r(r){for(var n,i,a=r[0],c=r[1],l=r[2],s=0,p=[];s<a.length;s++)i=a[s],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);p.length;)p.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var c=t[a];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"d2558866"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){a.onerror=a.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="./",i.oe=function(e){throw console.error(e),e};var a=this.webpackJsonpscodocmobile=this.webpackJsonpscodocmobile||[],c=a.push.bind(a);a.push=r,a=a.slice();for(var l=0;l<a.length;l++)r(a[l]);var f=c;t()}([])</script><script src="./static/js/2.68967b49.chunk.js"></script><script src="./static/js/main.9d1150c9.chunk.js"></script></body></html>
|
|
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"short_name": "React App",
|
|
||||||
"name": "Create React App Sample",
|
|
||||||
"icons": [
|
|
||||||
{
|
|
||||||
"src": "favicon.ico",
|
|
||||||
"sizes": "64x64 32x32 24x24 16x16",
|
|
||||||
"type": "image/x-icon"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"src": "scologo.png",
|
|
||||||
"type": "image/png",
|
|
||||||
"sizes": "84x126"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"start_url": ".",
|
|
||||||
"display": "standalone",
|
|
||||||
"theme_color": "#000000",
|
|
||||||
"background_color": "#ffffff"
|
|
||||||
}
|
|
@ -1,3 +0,0 @@
|
|||||||
# https://www.robotstxt.org/robotstxt.html
|
|
||||||
User-agent: *
|
|
||||||
Disallow:
|
|
Binary file not shown.
Before Width: | Height: | Size: 28 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +0,0 @@
|
|||||||
body{font-family:"Poppins",sans-serif;height:100vh}a{color:#92badd;display:inline-block;text-decoration:none;font-weight:400}#pageTitle{font-size:25px;color:#aaa}#loginTitle,#pageTitle{text-align:center;font-weight:600}#loginTitle{font-size:20px;text-transform:uppercase;display:inline-block;margin:40px 8px 10px;color:#ccc}.wrapper{display:-webkit-flex;display:flex;-webkit-align-items:center;align-items:center;-webkit-flex-direction:column;flex-direction:column;-webkit-justify-content:center;justify-content:center;width:100%;min-height:100%;padding:10px}#formContent{padding:0}#errorMsg,#formContent{border-radius:10px 10px 10px 10px;background:#fff;width:90%;max-width:450px;position:relative;box-shadow:0 30px 60px 0 rgba(0,0,0,.3);text-align:center}#errorMsg{margin-bottom:10px;padding:0 0 20px}#wrapDept{border-radius:10px 10px 10px 10px;background:#fff;width:90%;max-width:450px;position:relative;box-shadow:0 10px 20px 0 rgba(0,0,0,.3);text-align:center;margin:10px;padding:10px}#formFooter{background-color:#f6f6f6;border-top:1px solid #dce8f1;padding:25px;text-align:center;border-radius:0 0 10px 10px}button[type=submit],input[type=button],input[type=reset]{background-color:#56baed;border:none;color:#fff;padding:15px 80px;text-align:center;text-decoration:none;display:inline-block;text-transform:uppercase;font-size:13px;box-shadow:0 10px 30px 0 rgba(95,186,233,.4);border-radius:5px 5px 5px 5px;margin:5px 20px 40px;transition:all .3s ease-in-out}button[type=submit]:hover,input[type=button]:hover,input[type=reset]:hover{background-color:#39ace7}button[type=submit]:active,input[type=button]:active,input[type=reset]:active{-webkit-transform:scale(.95);transform:scale(.95)}input[type=password],input[type=text]{background-color:#f6f6f6;color:#0d0d0d;padding:15px 32px;text-decoration:none;display:inline-block;font-size:16px;margin:5px;width:85%;border:2px solid #f6f6f6;transition:all .5s ease-in-out;border-radius:5px 5px 5px 5px}input[type=password]:focus,input[type=text]:focus{background-color:#fff;border-bottom:2px solid #5fbae9}input[type=password]::-webkit-input-placeholder,input[type=text]::-webkit-input-placeholder{color:#ccc}input[type=password]:-ms-input-placeholder,input[type=text]:-ms-input-placeholder{color:#ccc}input[type=password]::placeholder,input[type=text]::placeholder{color:#ccc}.underlineHover:hover{color:#0d0d0d}.underlineHover:hover:after{width:100%}:focus{outline:none}#icon{width:60%}.mySelect{min-width:200px}.smallRow{line-height:60%;font-size:70%}.ueRow{background:#5bc0de;color:#fff;font-weight:700}thead{background:#d3d3d3}
|
|
||||||
/*# sourceMappingURL=main.6be5a531.chunk.css.map */
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,65 +0,0 @@
|
|||||||
/*
|
|
||||||
object-assign
|
|
||||||
(c) Sindre Sorhus
|
|
||||||
@license MIT
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!
|
|
||||||
Copyright (c) 2018 Jed Watson.
|
|
||||||
Licensed under the MIT License (MIT), see
|
|
||||||
http://jedwatson.github.io/classnames
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*!@license
|
|
||||||
* UAParser.js v0.7.28
|
|
||||||
* Lightweight JavaScript-based User-Agent string parser
|
|
||||||
* https://github.com/faisalman/ua-parser-js
|
|
||||||
*
|
|
||||||
* Copyright © 2012-2021 Faisal Salman <f@faisalman.com>
|
|
||||||
* Licensed under MIT License
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** @license React v0.20.2
|
|
||||||
* scheduler.production.min.js
|
|
||||||
*
|
|
||||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** @license React v16.13.1
|
|
||||||
* react-is.production.min.js
|
|
||||||
*
|
|
||||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** @license React v17.0.2
|
|
||||||
* react-dom.production.min.js
|
|
||||||
*
|
|
||||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** @license React v17.0.2
|
|
||||||
* react-jsx-runtime.production.min.js
|
|
||||||
*
|
|
||||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/** @license React v17.0.2
|
|
||||||
* react.production.min.js
|
|
||||||
*
|
|
||||||
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
||||||
*
|
|
||||||
* This source code is licensed under the MIT license found in the
|
|
||||||
* LICENSE file in the root directory of this source tree.
|
|
||||||
*/
|
|
File diff suppressed because one or more lines are too long
@ -1,2 +0,0 @@
|
|||||||
(this.webpackJsonpscodocmobile=this.webpackJsonpscodocmobile||[]).push([[3],{116:function(t,e,n){"use strict";n.r(e),n.d(e,"getCLS",(function(){return p})),n.d(e,"getFCP",(function(){return g})),n.d(e,"getFID",(function(){return F})),n.d(e,"getLCP",(function(){return k})),n.d(e,"getTTFB",(function(){return C}));var i,a,r,o,c=function(t,e){return{name:t,value:void 0===e?-1:e,delta:0,entries:[],id:"v1-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},u=function(t,e){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){var n=new PerformanceObserver((function(t){return t.getEntries().map(e)}));return n.observe({type:t,buffered:!0}),n}}catch(t){}},s=function(t,e){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(t(i),e&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},f=function(t){addEventListener("pageshow",(function(e){e.persisted&&t(e)}),!0)},d="function"==typeof WeakSet?new WeakSet:new Set,m=function(t,e,n){var i;return function(){e.value>=0&&(n||d.has(e)||"hidden"===document.visibilityState)&&(e.delta=e.value-(i||0),(e.delta||void 0===i)&&(i=e.value,t(e)))}},p=function(t,e){var n,i=c("CLS",0),a=function(t){t.hadRecentInput||(i.value+=t.value,i.entries.push(t),n())},r=u("layout-shift",a);r&&(n=m(t,i,e),s((function(){r.takeRecords().map(a),n()})),f((function(){i=c("CLS",0),n=m(t,i,e)})))},v=-1,l=function(){return"hidden"===document.visibilityState?0:1/0},h=function(){s((function(t){var e=t.timeStamp;v=e}),!0)},S=function(){return v<0&&(v=l(),h(),f((function(){setTimeout((function(){v=l(),h()}),0)}))),{get timeStamp(){return v}}},g=function(t,e){var n,i=S(),a=c("FCP"),r=u("paint",(function(t){"first-contentful-paint"===t.name&&(r&&r.disconnect(),t.startTime<i.timeStamp&&(a.value=t.startTime,a.entries.push(t),d.add(a),n()))}));r&&(n=m(t,a,e),f((function(i){a=c("FCP"),n=m(t,a,e),requestAnimationFrame((function(){requestAnimationFrame((function(){a.value=performance.now()-i.timeStamp,d.add(a),n()}))}))})))},y={passive:!0,capture:!0},w=new Date,E=function(t,e){i||(i=e,a=t,r=new Date,b(removeEventListener),L())},L=function(){if(a>=0&&a<r-w){var t={entryType:"first-input",name:i.type,target:i.target,cancelable:i.cancelable,startTime:i.timeStamp,processingStart:i.timeStamp+a};o.forEach((function(e){e(t)})),o=[]}},T=function(t){if(t.cancelable){var e=(t.timeStamp>1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,e){var n=function(){E(t,e),a()},i=function(){a()},a=function(){removeEventListener("pointerup",n,y),removeEventListener("pointercancel",i,y)};addEventListener("pointerup",n,y),addEventListener("pointercancel",i,y)}(e,t):E(e,t)}},b=function(t){["mousedown","keydown","touchstart","pointerdown"].forEach((function(e){return t(e,T,y)}))},F=function(t,e){var n,r=S(),p=c("FID"),v=function(t){t.startTime<r.timeStamp&&(p.value=t.processingStart-t.startTime,p.entries.push(t),d.add(p),n())},l=u("first-input",v);n=m(t,p,e),l&&s((function(){l.takeRecords().map(v),l.disconnect()}),!0),l&&f((function(){var r;p=c("FID"),n=m(t,p,e),o=[],a=-1,i=null,b(addEventListener),r=v,o.push(r),L()}))},k=function(t,e){var n,i=S(),a=c("LCP"),r=function(t){var e=t.startTime;e<i.timeStamp&&(a.value=e,a.entries.push(t)),n()},o=u("largest-contentful-paint",r);if(o){n=m(t,a,e);var p=function(){d.has(a)||(o.takeRecords().map(r),o.disconnect(),d.add(a),n())};["keydown","click"].forEach((function(t){addEventListener(t,p,{once:!0,capture:!0})})),s(p,!0),f((function(i){a=c("LCP"),n=m(t,a,e),requestAnimationFrame((function(){requestAnimationFrame((function(){a.value=performance.now()-i.timeStamp,d.add(a),n()}))}))}))}},C=function(t){var e,n=c("TTFB");e=function(){try{var e=performance.getEntriesByType("navigation")[0]||function(){var t=performance.timing,e={entryType:"navigation",startTime:0};for(var n in t)"navigationStart"!==n&&"toJSON"!==n&&(e[n]=Math.max(t[n]-t.navigationStart,0));return e}();n.value=n.delta=e.responseStart,n.entries=[e],t(n)}catch(t){}},"complete"===document.readyState?setTimeout(e,0):addEventListener("pageshow",e)}}}]);
|
|
||||||
//# sourceMappingURL=3.d2558866.chunk.js.map
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,2 +0,0 @@
|
|||||||
!function(e){function r(r){for(var n,i,a=r[0],c=r[1],l=r[2],s=0,p=[];s<a.length;s++)i=a[s],Object.prototype.hasOwnProperty.call(o,i)&&o[i]&&p.push(o[i][0]),o[i]=0;for(n in c)Object.prototype.hasOwnProperty.call(c,n)&&(e[n]=c[n]);for(f&&f(r);p.length;)p.shift()();return u.push.apply(u,l||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,a=1;a<t.length;a++){var c=t[a];0!==o[c]&&(n=!1)}n&&(u.splice(r--,1),e=i(i.s=t[0]))}return e}var n={},o={1:0},u=[];function i(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,i),t.l=!0,t.exports}i.e=function(e){var r=[],t=o[e];if(0!==t)if(t)r.push(t[2]);else{var n=new Promise((function(r,n){t=o[e]=[r,n]}));r.push(t[2]=n);var u,a=document.createElement("script");a.charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=function(e){return i.p+"static/js/"+({}[e]||e)+"."+{3:"d2558866"}[e]+".chunk.js"}(e);var c=new Error;u=function(r){a.onerror=a.onload=null,clearTimeout(l);var t=o[e];if(0!==t){if(t){var n=r&&("load"===r.type?"missing":r.type),u=r&&r.target&&r.target.src;c.message="Loading chunk "+e+" failed.\n("+n+": "+u+")",c.name="ChunkLoadError",c.type=n,c.request=u,t[1](c)}o[e]=void 0}};var l=setTimeout((function(){u({type:"timeout",target:a})}),12e4);a.onerror=a.onload=u,document.head.appendChild(a)}return Promise.all(r)},i.m=e,i.c=n,i.d=function(e,r,t){i.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},i.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.t=function(e,r){if(1&r&&(e=i(e)),8&r)return e;if(4&r&&"object"===typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(i.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)i.d(t,n,function(r){return e[r]}.bind(null,n));return t},i.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return i.d(r,"a",r),r},i.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},i.p="./",i.oe=function(e){throw console.error(e),e};var a=this.webpackJsonpscodocmobile=this.webpackJsonpscodocmobile||[],c=a.push.bind(a);a.push=r,a=a.slice();for(var l=0;l<a.length;l++)r(a[l]);var f=c;t()}([]);
|
|
||||||
//# sourceMappingURL=runtime-main.b827b16d.js.map
|
|
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue
Block a user