forked from ScoDoc/ScoDoc
Base test: complète étudiants et groupe par defaut
This commit is contained in:
parent
10230d20ef
commit
fe6790738f
@ -63,6 +63,12 @@ class GroupDescr(db.Model):
|
||||
# "A", "C2", ... (NULL for 'all'):
|
||||
group_name = db.Column(db.String(GROUPNAME_STR_LEN))
|
||||
|
||||
etuds = db.relationship(
|
||||
"Identite",
|
||||
secondary="group_membership",
|
||||
lazy="dynamic",
|
||||
)
|
||||
|
||||
def __repr__(self):
|
||||
return (
|
||||
f"""<{self.__class__.__name__} {self.id} "{self.group_name or '(tous)'}">"""
|
||||
|
@ -14,6 +14,7 @@ import click
|
||||
import flask
|
||||
from flask.cli import with_appcontext
|
||||
from flask.templating import render_template
|
||||
from flask_login import login_user, logout_user, current_user
|
||||
import psycopg2
|
||||
import sqlalchemy
|
||||
|
||||
@ -45,7 +46,6 @@ cli.register(app)
|
||||
def make_shell_context():
|
||||
from app.scodoc import notesdb as ndb
|
||||
from app.scodoc import sco_utils as scu
|
||||
from flask_login import login_user, logout_user, current_user
|
||||
import app as mapp # le package app
|
||||
import numpy as np
|
||||
import pandas as pd
|
||||
@ -504,6 +504,8 @@ def init_test_database():
|
||||
|
||||
ctx = app.test_request_context()
|
||||
ctx.push()
|
||||
admin = User.query.filter_by(user_name="admin").first()
|
||||
login_user(admin)
|
||||
create_test_api_database.init_test_database()
|
||||
|
||||
|
||||
|
@ -30,7 +30,12 @@ from flask_login import login_user
|
||||
from app import auth
|
||||
from app import models
|
||||
from app import db
|
||||
from app.scodoc import sco_formations
|
||||
from app.scodoc import (
|
||||
sco_formations,
|
||||
sco_formsemestre,
|
||||
sco_formsemestre_inscriptions,
|
||||
sco_groups,
|
||||
)
|
||||
from tools.fakeportal.gen_nomprenoms import nomprenom
|
||||
|
||||
# La formation à utiliser:
|
||||
@ -69,19 +74,26 @@ def create_user(dept):
|
||||
return user
|
||||
|
||||
|
||||
def create_fake_etud():
|
||||
def create_fake_etud(dept):
|
||||
"""Créé un faux étudiant et l'insère dans la base"""
|
||||
civilite = random.choice(("M", "F", "X"))
|
||||
nom, prenom = nomprenom(civilite)
|
||||
etud = models.Identite(civilite=civilite, nom=nom, prenom=prenom)
|
||||
etud = models.Identite(civilite=civilite, nom=nom, prenom=prenom, dept_id=dept.id)
|
||||
db.session.add(etud)
|
||||
db.session.commit()
|
||||
adresse = models.Adresse(
|
||||
etudid=etud.id, email=f"{etud.prenom}.{etud.nom}@example.com"
|
||||
)
|
||||
db.session.add(adresse)
|
||||
admission = models.Admission(etudid=etud.id)
|
||||
db.session.add(admission)
|
||||
db.session.commit()
|
||||
return etud
|
||||
|
||||
|
||||
def create_etuds(nb=16):
|
||||
def create_etuds(dept, nb=16):
|
||||
"create nb etuds"
|
||||
return [create_fake_etud() for _ in range(nb)]
|
||||
return [create_fake_etud(dept) for _ in range(nb)]
|
||||
|
||||
|
||||
def create_formsemestre(formation, user, semestre_idx=1):
|
||||
@ -104,30 +116,29 @@ def create_formsemestre(formation, user, semestre_idx=1):
|
||||
)
|
||||
db.session.add(modimpl)
|
||||
db.session.commit()
|
||||
partition_id = sco_groups.partition_create(
|
||||
formsemestre.id, default=True, redirect=False
|
||||
)
|
||||
_group_id = sco_groups.create_group(partition_id, default=True)
|
||||
return formsemestre
|
||||
|
||||
|
||||
def inscrit_etudiants(etuds, formsemestre):
|
||||
"""Inscrit les etudiants aux semestres et à tous ses modules"""
|
||||
for etud in etuds:
|
||||
ins = models.FormSemestreInscription(
|
||||
etudid=etud.id, formsemestre_id=formsemestre.id, etat="I"
|
||||
sco_formsemestre_inscriptions.do_formsemestre_inscription_with_modules(
|
||||
formsemestre.id,
|
||||
etud.id,
|
||||
group_ids=[],
|
||||
etat="I",
|
||||
method="init db test",
|
||||
)
|
||||
db.session.add(ins)
|
||||
for modimpl in formsemestre.modimpls:
|
||||
insmod = models.ModuleImplInscription(
|
||||
etudid=etud.id, moduleimpl_id=modimpl.id
|
||||
)
|
||||
db.session.add(insmod)
|
||||
db.session.commit()
|
||||
|
||||
|
||||
def init_test_database():
|
||||
dept = init_departement("TAPI")
|
||||
user = create_user(dept)
|
||||
login_user(user)
|
||||
|
||||
etuds = create_etuds()
|
||||
etuds = create_etuds(dept)
|
||||
formation = import_formation()
|
||||
formsemestre = create_formsemestre(formation, user)
|
||||
inscrit_etudiants(etuds, formsemestre)
|
||||
|
Loading…
Reference in New Issue
Block a user