forked from ScoDoc/ScoDoc
Compare commits
2 Commits
3a3c3793ed
...
1083f60020
Author | SHA1 | Date | |
---|---|---|---|
|
1083f60020 | ||
|
53a4b6cdd7 |
@ -10,6 +10,22 @@ from app.models.formations import Formation
|
||||
from app.scodoc import sco_formations
|
||||
from app.scodoc.sco_permissions import Permission
|
||||
|
||||
@bp.route("/formations", methods=["GET"])
|
||||
@token_auth.login_required
|
||||
@token_permission_required(Permission.APIView)
|
||||
def formations():
|
||||
"""
|
||||
Retourne la liste de toutes les formations (tous départements)
|
||||
|
||||
Exemple de résultat :
|
||||
"""
|
||||
# Récupération de toutes les formations
|
||||
list_formations = models.Formation.query.all()
|
||||
|
||||
# Mise en forme des données
|
||||
data = [d.to_dict() for d in list_formations]
|
||||
|
||||
return jsonify(data)
|
||||
|
||||
@bp.route("/formations_ids", methods=["GET"])
|
||||
@token_auth.login_required
|
||||
|
@ -81,6 +81,40 @@ class ApcReferentielCompetences(db.Model, XMLModel):
|
||||
)
|
||||
formations = db.relationship("Formation", backref="referentiel_competence")
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
id,
|
||||
dept_id,
|
||||
annexe,
|
||||
specialite,
|
||||
specialite_long,
|
||||
type_titre,
|
||||
type_structure,
|
||||
type_departement,
|
||||
version_orebut,
|
||||
_xml_attribs,
|
||||
scodoc_date_loaded,
|
||||
scodoc_orig_filename,
|
||||
competences,
|
||||
parcours,
|
||||
formations,
|
||||
):
|
||||
self.id = id
|
||||
self.dept_id = dept_id
|
||||
self.annexe = annexe
|
||||
self.specialite = specialite
|
||||
self.specialite_long = specialite_long
|
||||
self.type_titre = type_titre
|
||||
self.type_structure = type_structure
|
||||
self.type_departement = type_departement
|
||||
self.version_orebut = version_orebut
|
||||
self._xml_attribs = _xml_attribs
|
||||
self.scodoc_date_loaded = scodoc_date_loaded
|
||||
self.scodoc_orig_filename = scodoc_orig_filename
|
||||
self.competences = competences
|
||||
self.parcours = parcours
|
||||
self.formations = formations
|
||||
|
||||
def __repr__(self):
|
||||
return f"<ApcReferentielCompetences {self.id} {self.specialite}>"
|
||||
|
||||
@ -143,6 +177,32 @@ class ApcCompetence(db.Model, XMLModel):
|
||||
cascade="all, delete-orphan",
|
||||
)
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
id,
|
||||
referentiel_id,
|
||||
id_orebut,
|
||||
titre,
|
||||
titre_long,
|
||||
couleur,
|
||||
numero,
|
||||
_xml_attribs,
|
||||
situations,
|
||||
composantes_essentielles,
|
||||
niveaux,
|
||||
):
|
||||
self.id = id
|
||||
self.referentiel_id = referentiel_id
|
||||
self.id_orebut = id_orebut
|
||||
self.titre = titre
|
||||
self.titre_long = titre_long
|
||||
self.couleur = couleur
|
||||
self.numero = numero
|
||||
self._xml_attribs = _xml_attribs
|
||||
self.situations = situations
|
||||
self.composantes_essentielles = composantes_essentielles
|
||||
self.niveaux = niveaux
|
||||
|
||||
def __repr__(self):
|
||||
return f"<ApcCompetence {self.id} {self.titre}>"
|
||||
|
||||
@ -169,6 +229,12 @@ class ApcSituationPro(db.Model, XMLModel):
|
||||
)
|
||||
libelle = db.Column(db.Text(), nullable=False)
|
||||
# aucun attribut (le text devient le libellé)
|
||||
|
||||
def __init__(self, id, competence_id, libelle):
|
||||
self.id = id
|
||||
self.competence_id = competence_id
|
||||
self.libelle = libelle
|
||||
|
||||
def to_dict(self):
|
||||
return {"libelle": self.libelle}
|
||||
|
||||
@ -181,6 +247,11 @@ class ApcComposanteEssentielle(db.Model, XMLModel):
|
||||
)
|
||||
libelle = db.Column(db.Text(), nullable=False)
|
||||
|
||||
def __init__(self, id, competence_id, libelle):
|
||||
self.id = id
|
||||
self.competence_id = competence_id
|
||||
self.libelle = libelle
|
||||
|
||||
def to_dict(self):
|
||||
return {"libelle": self.libelle}
|
||||
|
||||
@ -201,6 +272,14 @@ class ApcNiveau(db.Model, XMLModel):
|
||||
cascade="all, delete-orphan",
|
||||
)
|
||||
|
||||
def __init__(self, id, competence_id, libelle, annee, ordre, app_critiques):
|
||||
self.id = id
|
||||
self.competence_id = competence_id
|
||||
self.libelle = libelle
|
||||
self.annee = annee
|
||||
self.ordre = ordre
|
||||
self.app_critiques = app_critiques
|
||||
|
||||
def __repr__(self):
|
||||
return f"<{self.__class__.__name__} ordre={self.ordre}>"
|
||||
|
||||
@ -227,6 +306,13 @@ class ApcAppCritique(db.Model, XMLModel):
|
||||
backref=db.backref("app_critiques", lazy="dynamic"),
|
||||
)
|
||||
|
||||
def __init__(self, id, niveau_id, code, libelle, modules):
|
||||
self.id = id
|
||||
self.niveau_id = niveau_id
|
||||
self.code = code
|
||||
self.libelle = libelle
|
||||
self.modules = modules
|
||||
|
||||
def to_dict(self) -> dict:
|
||||
return {"libelle": self.libelle}
|
||||
|
||||
@ -263,6 +349,14 @@ class ApcParcours(db.Model, XMLModel):
|
||||
cascade="all, delete-orphan",
|
||||
)
|
||||
|
||||
def __init__(self, id, referentiel_id, numero, code, libelle, annes):
|
||||
self.id = id
|
||||
self.referentiel_id = referentiel_id
|
||||
self.numero = numero
|
||||
self.code = code
|
||||
self.libelle = libelle
|
||||
self.annes = annes
|
||||
|
||||
def __repr__(self):
|
||||
return f"<{self.__class__.__name__} {self.code}>"
|
||||
|
||||
@ -282,6 +376,11 @@ class ApcAnneeParcours(db.Model, XMLModel):
|
||||
)
|
||||
ordre = db.Column(db.Integer)
|
||||
|
||||
def __init__(self, id, parcours_id, ordre):
|
||||
self.id = id
|
||||
self.parcours_id = parcours_id
|
||||
self.ordre = ordre
|
||||
|
||||
def __repr__(self):
|
||||
return f"<{self.__class__.__name__} ordre={self.ordre}>"
|
||||
|
||||
|
@ -36,8 +36,18 @@ from app.models import (
|
||||
Identite,
|
||||
ModuleImpl,
|
||||
NotesNotes,
|
||||
ApcReferentielCompetences,
|
||||
ApcCompetence,
|
||||
)
|
||||
from app import db
|
||||
from app.models.but_refcomp import (
|
||||
ApcParcours,
|
||||
ApcAnneeParcours,
|
||||
ApcSituationPro,
|
||||
ApcComposanteEssentielle,
|
||||
ApcNiveau,
|
||||
ApcAppCritique,
|
||||
)
|
||||
from app.scodoc import (
|
||||
sco_cache,
|
||||
sco_evaluation_db,
|
||||
@ -257,6 +267,172 @@ def saisie_notes_evaluations(formsemestre: FormSemestre, user: User):
|
||||
saisir_notes(evaluation.id, condition_saisie_notes)
|
||||
|
||||
|
||||
def create_ref_comp(formation: Formation):
|
||||
"""
|
||||
Créer un referentiel de competences
|
||||
"""
|
||||
### ApcSituationPro ###
|
||||
apc_situation_pro_id = 1
|
||||
apc_situation_pro_competence_id = 1
|
||||
apc_situation_pro_libelle = ""
|
||||
|
||||
apc_situation_pro = ApcSituationPro(
|
||||
apc_situation_pro_id, apc_situation_pro_competence_id, apc_situation_pro_libelle
|
||||
)
|
||||
db.session.add(apc_situation_pro)
|
||||
db.session.commit()
|
||||
|
||||
### ApcComposanteEssentielle ###
|
||||
apc_composante_essentielle_id = 1
|
||||
apc_composante_essentielle_competence_id = 1
|
||||
apc_composante_essentielle_libelle = ""
|
||||
|
||||
apc_composante_essentielle = ApcComposanteEssentielle(
|
||||
apc_composante_essentielle_id,
|
||||
apc_composante_essentielle_competence_id,
|
||||
apc_composante_essentielle_libelle,
|
||||
)
|
||||
db.session.add(apc_composante_essentielle)
|
||||
db.session.commit()
|
||||
|
||||
### ApcAppCritique ###
|
||||
apc_app_critique_id = 1
|
||||
apc_app_critique_niveau_id = 1
|
||||
apc_app_critique_code = ""
|
||||
apc_app_critique_libelle = ""
|
||||
apc_app_critique_modules = formation.modules
|
||||
|
||||
apc_app_critique = ApcAppCritique(
|
||||
apc_app_critique_id,
|
||||
apc_app_critique_niveau_id,
|
||||
apc_app_critique_code,
|
||||
apc_app_critique_libelle,
|
||||
apc_app_critique_modules,
|
||||
)
|
||||
db.session.add(apc_app_critique)
|
||||
db.session.commit()
|
||||
|
||||
### ApcNiveau ###
|
||||
apc_niveau_id = 1
|
||||
apc_niveau_competence_id = 1
|
||||
apc_niveau_libelle = ""
|
||||
apc_niveau_annee = ""
|
||||
apc_niveau_ordre = 1
|
||||
apc_niveau_app_critiques = apc_app_critique
|
||||
|
||||
apc_niveau = ApcNiveau(
|
||||
apc_niveau_id,
|
||||
apc_niveau_competence_id,
|
||||
apc_niveau_libelle,
|
||||
apc_niveau_annee,
|
||||
apc_niveau_ordre,
|
||||
apc_niveau_app_critiques,
|
||||
)
|
||||
db.session.add(apc_niveau)
|
||||
db.session.commit()
|
||||
|
||||
### ApcCompetence ###
|
||||
apc_competence_id = 1
|
||||
apc_competence_referentiel_id = 1
|
||||
apc_competence_id_orebut = ""
|
||||
apc_competence_titre = ""
|
||||
apc_competence_titre_long = ""
|
||||
apc_competence_couleur = ""
|
||||
apc_competence_numero = 1
|
||||
apc_competence_xml_attribs = { # xml_attrib : attribute
|
||||
"id": "id_orebut",
|
||||
"nom_court": "titre", # was name
|
||||
"libelle_long": "titre_long",
|
||||
}
|
||||
apc_competence_situations = apc_situation_pro
|
||||
apc_competence_composantes_essentielles = apc_composante_essentielle
|
||||
apc_competence_niveaux = apc_niveau
|
||||
|
||||
apc_competence = ApcCompetence(
|
||||
apc_competence_id,
|
||||
apc_competence_referentiel_id,
|
||||
apc_competence_id_orebut,
|
||||
apc_competence_titre,
|
||||
apc_competence_titre_long,
|
||||
apc_competence_couleur,
|
||||
apc_competence_numero,
|
||||
apc_competence_xml_attribs,
|
||||
apc_competence_situations,
|
||||
apc_competence_composantes_essentielles,
|
||||
apc_competence_niveaux,
|
||||
)
|
||||
db.session.add(apc_competence)
|
||||
db.session.commit()
|
||||
|
||||
### ApcAnneeParcours ###
|
||||
apc_annee_parcours_id = 1
|
||||
apc_annee_parcours_parcours_id = 1
|
||||
apc_annee_parcours_ordre = 1
|
||||
|
||||
ap_annee_parcours = ApcAnneeParcours(
|
||||
apc_annee_parcours_id, apc_annee_parcours_parcours_id, apc_annee_parcours_ordre
|
||||
)
|
||||
|
||||
### ApcParcours ###
|
||||
apc_parcours_id = 1
|
||||
apc_parcours_referentiel_id = 1
|
||||
apc_parcours_numero = 1
|
||||
apc_parcours_code = ""
|
||||
apc_parcours_libelle = ""
|
||||
apc_parcours_annees = ap_annee_parcours
|
||||
|
||||
apc_parcours = ApcParcours(
|
||||
apc_parcours_id,
|
||||
apc_parcours_referentiel_id,
|
||||
apc_parcours_numero,
|
||||
apc_parcours_code,
|
||||
apc_parcours_libelle,
|
||||
apc_parcours_annees,
|
||||
)
|
||||
db.session.add(apc_parcours)
|
||||
db.session.commit()
|
||||
|
||||
### ApcReferentielCompetences ###
|
||||
apc_referentiel_competences_id = 1
|
||||
apc_referentiel_competences_dept_id = 1
|
||||
apc_referentiel_competences_annexe = ""
|
||||
apc_referentiel_competences_specialite = ""
|
||||
apc_referentiel_competences_specialite_long = ""
|
||||
apc_referentiel_competences_type_titre = ""
|
||||
apc_referentiel_competences_type_structure = ""
|
||||
apc_referentiel_competences_type_departement = ""
|
||||
apc_referentiel_competences_version_orebut = ""
|
||||
apc_referentiel_competences_xml_attribs = {
|
||||
"type": "type_titre",
|
||||
"version": "version_orebut",
|
||||
}
|
||||
apc_referentiel_competences_scodoc_date_loaded = ""
|
||||
apc_referentiel_competences_scodoc_orig_filename = ""
|
||||
apc_referentiel_competences_competences = apc_competence
|
||||
apc_referentiel_competences_parcours = apc_parcours
|
||||
apc_referentiel_competences_formations = formation
|
||||
|
||||
apc_referentiel_competences = ApcReferentielCompetences(
|
||||
apc_referentiel_competences_id,
|
||||
apc_referentiel_competences_dept_id,
|
||||
apc_referentiel_competences_annexe,
|
||||
apc_referentiel_competences_specialite,
|
||||
apc_referentiel_competences_specialite_long,
|
||||
apc_referentiel_competences_type_titre,
|
||||
apc_referentiel_competences_type_structure,
|
||||
apc_referentiel_competences_type_departement,
|
||||
apc_referentiel_competences_version_orebut,
|
||||
apc_referentiel_competences_xml_attribs,
|
||||
apc_referentiel_competences_scodoc_date_loaded,
|
||||
apc_referentiel_competences_scodoc_orig_filename,
|
||||
apc_referentiel_competences_competences,
|
||||
apc_referentiel_competences_parcours,
|
||||
apc_referentiel_competences_formations,
|
||||
)
|
||||
db.session.add(apc_referentiel_competences)
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def init_test_database():
|
||||
"""Appelé par la commande `flask init-test-database`
|
||||
|
||||
@ -271,6 +447,7 @@ def init_test_database():
|
||||
create_evaluations(formsemestre)
|
||||
inscrit_etudiants(etuds, formsemestre)
|
||||
saisie_notes_evaluations(formsemestre, user_lecteur)
|
||||
create_ref_comp(formation)
|
||||
# à compléter
|
||||
# - groupes
|
||||
# - absences
|
||||
|
Loading…
Reference in New Issue
Block a user