forked from ScoDoc/ScoDoc
nouveau module gestion utilisateurs (en cours)
This commit is contained in:
parent
3f90b71009
commit
ac7cd6a99c
@ -243,6 +243,15 @@ class User(UserMixin, db.Model):
|
|||||||
self.user_name,
|
self.user_name,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_user_name_from_nomplogin(nomplogin):
|
||||||
|
"""Returns user_name from the string "Dupont Pierre (dupont)" """
|
||||||
|
m = re.match(r".*\((.*)\)", nomplogin.strip())
|
||||||
|
if m:
|
||||||
|
return m.group(1)
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
class AnonymousUser(AnonymousUserMixin):
|
class AnonymousUser(AnonymousUserMixin):
|
||||||
def has_permission(self, perm, dept=None):
|
def has_permission(self, perm, dept=None):
|
||||||
|
@ -30,6 +30,8 @@
|
|||||||
|
|
||||||
import cgi
|
import cgi
|
||||||
|
|
||||||
|
from flask_login import current_user
|
||||||
|
|
||||||
import app.scodoc.sco_utils as scu
|
import app.scodoc.sco_utils as scu
|
||||||
from app.scodoc.notes_log import log
|
from app.scodoc.notes_log import log
|
||||||
from app.scodoc import html_sidebar
|
from app.scodoc import html_sidebar
|
||||||
@ -314,18 +316,14 @@ def sco_header(
|
|||||||
|
|
||||||
# Avertissement si mot de passe à changer
|
# Avertissement si mot de passe à changer
|
||||||
if user_check:
|
if user_check:
|
||||||
authuser = REQUEST.AUTHENTICATED_USER
|
if current_user.passwd_temp:
|
||||||
# passwd_temp = context.Users.user_info(user_name=str(authuser))["passwd_temp"]
|
|
||||||
log("XXX TODO: Users.user_info")
|
|
||||||
passwd_temp = False # XXX TODO
|
|
||||||
if passwd_temp:
|
|
||||||
H.append(
|
H.append(
|
||||||
"""<div class="passwd_warn">
|
"""<div class="passwd_warn">
|
||||||
Attention !<br/>
|
Attention !<br/>
|
||||||
Vous avez reçu un mot de passe temporaire.<br/>
|
Vous avez reçu un mot de passe temporaire.<br/>
|
||||||
Vous devez le changer: <a href="%s/Users/form_change_password?user_name=%s">cliquez ici</a>
|
Vous devez le changer: <a href="%s/form_change_password?user_name=%s">cliquez ici</a>
|
||||||
</div>"""
|
</div>"""
|
||||||
% (scu.ScoURL(), str(authuser))
|
% (scu.UsersURL, current_user.user_name)
|
||||||
)
|
)
|
||||||
#
|
#
|
||||||
if head_message:
|
if head_message:
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
"""
|
"""
|
||||||
Génération de la "sidebar" (marge gauche des pages HTML)
|
Génération de la "sidebar" (marge gauche des pages HTML)
|
||||||
"""
|
"""
|
||||||
|
from flask import url_for
|
||||||
|
|
||||||
import app.scodoc.sco_utils as scu
|
import app.scodoc.sco_utils as scu
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
@ -35,19 +36,19 @@ from app.scodoc.sco_permissions import Permission
|
|||||||
|
|
||||||
|
|
||||||
def sidebar_common(context, REQUEST=None):
|
def sidebar_common(context, REQUEST=None):
|
||||||
"partie commune a toutes les sidebar"
|
"partie commune à toutes les sidebar"
|
||||||
authuser = REQUEST.AUTHENTICATED_USER
|
authuser = REQUEST.AUTHENTICATED_USER
|
||||||
params = {
|
params = {
|
||||||
"ScoURL": scu.ScoURL(),
|
"ScoURL": scu.ScoURL(),
|
||||||
"UsersURL": scu.UsersURL(),
|
"UsersURL": scu.UsersURL(),
|
||||||
"NotesURL": scu.NotesURL(),
|
"NotesURL": scu.NotesURL(),
|
||||||
"AbsencesURL": scu.AbsencesURL(),
|
"AbsencesURL": scu.AbsencesURL(),
|
||||||
# XXX TODO "LogoutURL" : ,
|
"LogoutURL": url_for("auth.logout"),
|
||||||
"authuser": str(authuser),
|
"authuser": str(authuser),
|
||||||
}
|
}
|
||||||
H = [
|
H = [
|
||||||
'<a class="scodoc_title" href="about">ScoDoc 8</a>',
|
'<a class="scodoc_title" href="about">ScoDoc 8</a>',
|
||||||
'<div id="authuser"><a id="authuserlink" href="%(ScoURL)s/Users/user_info_page">%(authuser)s</a><br/><a id="deconnectlink" href="%(ScoURL)s/acl_users/logout">déconnexion</a></div>'
|
'<div id="authuser"><a id="authuserlink" href="%(ScoURL)s/Users/user_info_page">%(authuser)s</a><br/><a id="deconnectlink" href="%(LogoutURL)s">déconnexion</a></div>'
|
||||||
% params,
|
% params,
|
||||||
sidebar_dept(context, REQUEST),
|
sidebar_dept(context, REQUEST),
|
||||||
"""<h2 class="insidebar">Scolarité</h2>
|
"""<h2 class="insidebar">Scolarité</h2>
|
||||||
|
@ -42,9 +42,10 @@ import app.scodoc.notesdb as ndb
|
|||||||
import app.scodoc.sco_utils as scu
|
import app.scodoc.sco_utils as scu
|
||||||
from app.scodoc.notes_log import log
|
from app.scodoc.notes_log import log
|
||||||
from app.scodoc.scolog import logdb
|
from app.scodoc.scolog import logdb
|
||||||
|
from app.scodoc import sco_etud
|
||||||
from app.scodoc import sco_formsemestre
|
from app.scodoc import sco_formsemestre
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
from app.scodoc import sco_etud
|
from app.scodoc import sco_users
|
||||||
|
|
||||||
|
|
||||||
def abs_notify(context, etudid, date):
|
def abs_notify(context, etudid, date):
|
||||||
@ -147,7 +148,7 @@ def abs_notify_get_destinations(context, sem, prefs, etudid, date, nbabs, nbabsj
|
|||||||
if sem and prefs["abs_notify_respsem"]:
|
if sem and prefs["abs_notify_respsem"]:
|
||||||
# notifie chaque responsable du semestre
|
# notifie chaque responsable du semestre
|
||||||
for responsable_id in sem["responsables"]:
|
for responsable_id in sem["responsables"]:
|
||||||
u = context.Users.user_info(responsable_id)
|
u = sco_users.user_info(responsable_id)
|
||||||
if u["email"]:
|
if u["email"]:
|
||||||
destinations.append(u["email"])
|
destinations.append(u["email"])
|
||||||
if prefs["abs_notify_chief"] and prefs["email_chefdpt"]:
|
if prefs["abs_notify_chief"] and prefs["email_chefdpt"]:
|
||||||
@ -165,7 +166,7 @@ def abs_notify_get_destinations(context, sem, prefs, etudid, date, nbabs, nbabsj
|
|||||||
if sem and prefs["abs_notify_respeval"]:
|
if sem and prefs["abs_notify_respeval"]:
|
||||||
mods = mod_with_evals_at_date(context, date, etudid)
|
mods = mod_with_evals_at_date(context, date, etudid)
|
||||||
for mod in mods:
|
for mod in mods:
|
||||||
u = context.Users.user_info(mod["responsable_id"])
|
u = sco_users.user_info(mod["responsable_id"])
|
||||||
if u["email"]:
|
if u["email"]:
|
||||||
destinations.append(u["email"])
|
destinations.append(u["email"])
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ def make_context_dict(context, sem, etud):
|
|||||||
C = sem.copy()
|
C = sem.copy()
|
||||||
C["responsable"] = " ,".join(
|
C["responsable"] = " ,".join(
|
||||||
[
|
[
|
||||||
context.Users.user_info(user_name=responsable_id)["prenomnom"]
|
sco_users.user_info(user_name=responsable_id)["prenomnom"]
|
||||||
for responsable_id in sem["responsables"]
|
for responsable_id in sem["responsables"]
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
@ -492,7 +492,7 @@ def _ue_mod_bulletin(context, etudid, formsemestre_id, ue_id, modimpls, nt, vers
|
|||||||
mod["mod_descr_txt"] = "Module %s, coef. %s (%s)" % (
|
mod["mod_descr_txt"] = "Module %s, coef. %s (%s)" % (
|
||||||
modimpl["module"]["titre"],
|
modimpl["module"]["titre"],
|
||||||
scu.fmt_coef(modimpl["module"]["coefficient"]),
|
scu.fmt_coef(modimpl["module"]["coefficient"]),
|
||||||
context.Users.user_info(modimpl["responsable_id"])["nomcomplet"],
|
sco_users.user_info(modimpl["responsable_id"])["nomcomplet"],
|
||||||
)
|
)
|
||||||
link_mod = (
|
link_mod = (
|
||||||
'<a class="bull_link" href="moduleimpl_status?moduleimpl_id=%s" title="%s">'
|
'<a class="bull_link" href="moduleimpl_status?moduleimpl_id=%s" title="%s">'
|
||||||
@ -513,7 +513,7 @@ def _ue_mod_bulletin(context, etudid, formsemestre_id, ue_id, modimpls, nt, vers
|
|||||||
mod_descr = "Module %s, coef. %s (%s)" % (
|
mod_descr = "Module %s, coef. %s (%s)" % (
|
||||||
modimpl["module"]["titre"],
|
modimpl["module"]["titre"],
|
||||||
scu.fmt_coef(modimpl["module"]["coefficient"]),
|
scu.fmt_coef(modimpl["module"]["coefficient"]),
|
||||||
context.Users.user_info(modimpl["responsable_id"])["nomcomplet"],
|
sco_users.user_info(modimpl["responsable_id"])["nomcomplet"],
|
||||||
)
|
)
|
||||||
link_mod = (
|
link_mod = (
|
||||||
'<a class="bull_link" href="moduleimpl_status?moduleimpl_id=%s" title="%s">'
|
'<a class="bull_link" href="moduleimpl_status?moduleimpl_id=%s" title="%s">'
|
||||||
|
@ -57,6 +57,7 @@ import app.scodoc.sco_utils as scu
|
|||||||
from app.scodoc.notes_log import log
|
from app.scodoc.notes_log import log
|
||||||
from app.scodoc import html_sco_header
|
from app.scodoc import html_sco_header
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
|
from app.scodoc import sco_users
|
||||||
from app.scodoc import VERSION
|
from app.scodoc import VERSION
|
||||||
from app.scodoc.sco_exceptions import ScoValueError
|
from app.scodoc.sco_exceptions import ScoValueError
|
||||||
|
|
||||||
@ -192,7 +193,7 @@ def _send_db(context, REQUEST, ano_db_name):
|
|||||||
"dept_name": sco_preferences.get_preference(context, "DeptName"),
|
"dept_name": sco_preferences.get_preference(context, "DeptName"),
|
||||||
"serial": _get_scodoc_serial(context),
|
"serial": _get_scodoc_serial(context),
|
||||||
"sco_user": str(REQUEST.AUTHENTICATED_USER),
|
"sco_user": str(REQUEST.AUTHENTICATED_USER),
|
||||||
"sent_by": context.Users.user_info(str(REQUEST.AUTHENTICATED_USER))[
|
"sent_by": sco_users.user_info(str(REQUEST.AUTHENTICATED_USER))[
|
||||||
"nomcomplet"
|
"nomcomplet"
|
||||||
],
|
],
|
||||||
"sco_version": VERSION.SCOVERSION,
|
"sco_version": VERSION.SCOVERSION,
|
||||||
|
@ -52,6 +52,7 @@ from app.scodoc import sco_moduleimpl
|
|||||||
from app.scodoc import sco_news
|
from app.scodoc import sco_news
|
||||||
from app.scodoc import sco_permissions_check
|
from app.scodoc import sco_permissions_check
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
|
from app.scodoc import sco_users
|
||||||
|
|
||||||
|
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
@ -899,7 +900,7 @@ def formsemestre_evaluations_delai_correction(
|
|||||||
)
|
)
|
||||||
e["module_titre"] = Mod["titre"]
|
e["module_titre"] = Mod["titre"]
|
||||||
e["responsable_id"] = M["responsable_id"]
|
e["responsable_id"] = M["responsable_id"]
|
||||||
e["responsable_nomplogin"] = context.Users.user_info(M["responsable_id"])[
|
e["responsable_nomplogin"] = sco_users.user_info(M["responsable_id"])[
|
||||||
"nomplogin"
|
"nomplogin"
|
||||||
]
|
]
|
||||||
e["_jour_target"] = "evaluation_listenotes?evaluation_id=" + e["evaluation_id"]
|
e["_jour_target"] = "evaluation_listenotes?evaluation_id=" + e["evaluation_id"]
|
||||||
@ -1057,7 +1058,7 @@ def evaluation_describe(context, evaluation_id="", edit_in_place=True, REQUEST=N
|
|||||||
M = sco_moduleimpl.do_moduleimpl_list(context, moduleimpl_id=moduleimpl_id)[0]
|
M = sco_moduleimpl.do_moduleimpl_list(context, moduleimpl_id=moduleimpl_id)[0]
|
||||||
Mod = sco_edit_module.do_module_list(context, args={"module_id": M["module_id"]})[0]
|
Mod = sco_edit_module.do_module_list(context, args={"module_id": M["module_id"]})[0]
|
||||||
formsemestre_id = M["formsemestre_id"]
|
formsemestre_id = M["formsemestre_id"]
|
||||||
u = context.Users.user_info(M["responsable_id"])
|
u = sco_users.user_info(M["responsable_id"])
|
||||||
resp = u["prenomnom"]
|
resp = u["prenomnom"]
|
||||||
nomcomplet = u["nomcomplet"]
|
nomcomplet = u["nomcomplet"]
|
||||||
can_edit = sco_permissions_check.can_edit_notes(
|
can_edit = sco_permissions_check.can_edit_notes(
|
||||||
|
@ -33,6 +33,7 @@ from scodoc_manager import sco_mgr
|
|||||||
from app.scodoc import sco_codes_parcours
|
from app.scodoc import sco_codes_parcours
|
||||||
from app.scodoc import sco_core
|
from app.scodoc import sco_core
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
|
from app.scodoc import sco_users
|
||||||
from app.scodoc.gen_tables import GenTable
|
from app.scodoc.gen_tables import GenTable
|
||||||
from app.scodoc.notes_log import log
|
from app.scodoc.notes_log import log
|
||||||
from app.scodoc.sco_codes_parcours import NO_SEMESTRE_ID
|
from app.scodoc.sco_codes_parcours import NO_SEMESTRE_ID
|
||||||
@ -459,7 +460,7 @@ def sem_set_responsable_name(context, sem):
|
|||||||
"ajoute champs responsable_name"
|
"ajoute champs responsable_name"
|
||||||
sem["responsable_name"] = ", ".join(
|
sem["responsable_name"] = ", ".join(
|
||||||
[
|
[
|
||||||
context.Users.user_info(responsable_id)["nomprenom"]
|
sco_users.user_info(responsable_id)["nomprenom"]
|
||||||
for responsable_id in sem["responsables"]
|
for responsable_id in sem["responsables"]
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
|
|
||||||
"""Form choix modules / responsables et creation formsemestre
|
"""Form choix modules / responsables et creation formsemestre
|
||||||
"""
|
"""
|
||||||
|
from app.auth.models import User
|
||||||
|
|
||||||
import app.scodoc.notesdb as ndb
|
import app.scodoc.notesdb as ndb
|
||||||
import app.scodoc.sco_utils as scu
|
import app.scodoc.sco_utils as scu
|
||||||
@ -685,10 +686,10 @@ def do_formsemestre_createwithmodules(context, REQUEST=None, edit=False):
|
|||||||
tf[2]["bul_hide_xml"] = 1
|
tf[2]["bul_hide_xml"] = 1
|
||||||
|
|
||||||
# remap les identifiants de responsables:
|
# remap les identifiants de responsables:
|
||||||
tf[2]["responsable_id"] = context.Users.get_user_name_from_nomplogin(
|
tf[2]["responsable_id"] = User.get_user_name_from_nomplogin(
|
||||||
tf[2]["responsable_id"]
|
tf[2]["responsable_id"]
|
||||||
)
|
)
|
||||||
tf[2]["responsable_id2"] = context.Users.get_user_name_from_nomplogin(
|
tf[2]["responsable_id2"] = User.get_user_name_from_nomplogin(
|
||||||
tf[2]["responsable_id2"]
|
tf[2]["responsable_id2"]
|
||||||
)
|
)
|
||||||
tf[2]["responsables"] = [tf[2]["responsable_id"]]
|
tf[2]["responsables"] = [tf[2]["responsable_id"]]
|
||||||
@ -696,7 +697,7 @@ def do_formsemestre_createwithmodules(context, REQUEST=None, edit=False):
|
|||||||
tf[2]["responsables"].append(tf[2]["responsable_id2"])
|
tf[2]["responsables"].append(tf[2]["responsable_id2"])
|
||||||
|
|
||||||
for module_id in tf[2]["tf-checked"]:
|
for module_id in tf[2]["tf-checked"]:
|
||||||
mod_resp_id = context.Users.get_user_name_from_nomplogin(tf[2][module_id])
|
mod_resp_id = User.get_user_name_from_nomplogin(tf[2][module_id])
|
||||||
if mod_resp_id is None:
|
if mod_resp_id is None:
|
||||||
# Si un module n'a pas de responsable (ou inconnu), l'affecte au 1er directeur des etudes:
|
# Si un module n'a pas de responsable (ou inconnu), l'affecte au 1er directeur des etudes:
|
||||||
mod_resp_id = tf[2]["responsable_id"]
|
mod_resp_id = tf[2]["responsable_id"]
|
||||||
@ -875,10 +876,10 @@ def formsemestre_clone(context, formsemestre_id, REQUEST=None):
|
|||||||
"""
|
"""
|
||||||
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
|
||||||
# Liste des enseignants avec forme pour affichage / saisie avec suggestion
|
# Liste des enseignants avec forme pour affichage / saisie avec suggestion
|
||||||
userlist = context.Users.get_userlist()
|
userlist = sco_users.get_user_list()
|
||||||
login2display = {} # user_name : forme pour affichage = "NOM Prenom (login)"
|
login2display = {} # user_name : forme pour affichage = "NOM Prenom (login)"
|
||||||
for u in userlist:
|
for u in userlist:
|
||||||
login2display[u["user_name"]] = u["nomplogin"]
|
login2display[u.user_name] = u.get_nomplogin()
|
||||||
allowed_user_names = login2display.values() + [""]
|
allowed_user_names = login2display.values() + [""]
|
||||||
|
|
||||||
initvalues = {
|
initvalues = {
|
||||||
@ -981,7 +982,7 @@ def formsemestre_clone(context, formsemestre_id, REQUEST=None):
|
|||||||
new_formsemestre_id = do_formsemestre_clone(
|
new_formsemestre_id = do_formsemestre_clone(
|
||||||
context,
|
context,
|
||||||
formsemestre_id,
|
formsemestre_id,
|
||||||
context.Users.get_user_name_from_nomplogin(tf[2]["responsable_id"]),
|
User.get_user_name_from_nomplogin(tf[2]["responsable_id"]),
|
||||||
tf[2]["date_debut"],
|
tf[2]["date_debut"],
|
||||||
tf[2]["date_fin"],
|
tf[2]["date_fin"],
|
||||||
clone_evaluations=tf[2]["clone_evaluations"],
|
clone_evaluations=tf[2]["clone_evaluations"],
|
||||||
|
@ -58,6 +58,7 @@ from app.scodoc import sco_groups
|
|||||||
from app.scodoc import sco_moduleimpl
|
from app.scodoc import sco_moduleimpl
|
||||||
from app.scodoc import sco_permissions_check
|
from app.scodoc import sco_permissions_check
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
|
from app.scodoc import sco_users
|
||||||
from app.scodoc.gen_tables import GenTable
|
from app.scodoc.gen_tables import GenTable
|
||||||
from app.scodoc.sco_formsemestre_custommenu import formsemestre_custommenu_html
|
from app.scodoc.sco_formsemestre_custommenu import formsemestre_custommenu_html
|
||||||
|
|
||||||
@ -601,8 +602,7 @@ def fill_formsemestre(context, sem, REQUEST=None):
|
|||||||
)
|
)
|
||||||
sem["nbinscrits"] = len(inscrits)
|
sem["nbinscrits"] = len(inscrits)
|
||||||
uresps = [
|
uresps = [
|
||||||
context.Users.user_info(responsable_id)
|
sco_users.user_info(responsable_id) for responsable_id in sem["responsables"]
|
||||||
for responsable_id in sem["responsables"]
|
|
||||||
]
|
]
|
||||||
sem["resp"] = ", ".join([u["prenomnom"] for u in uresps])
|
sem["resp"] = ", ".join([u["prenomnom"] for u in uresps])
|
||||||
sem["nomcomplet"] = ", ".join([u["nomcomplet"] for u in uresps])
|
sem["nomcomplet"] = ", ".join([u["nomcomplet"] for u in uresps])
|
||||||
@ -659,10 +659,7 @@ def formsemestre_description_table(
|
|||||||
context, moduleimpl_id=M["moduleimpl_id"]
|
context, moduleimpl_id=M["moduleimpl_id"]
|
||||||
)
|
)
|
||||||
enseignants = ", ".join(
|
enseignants = ", ".join(
|
||||||
[
|
[sco_users.user_info(m["ens_id"], REQUEST)["nomprenom"] for m in M["ens"]]
|
||||||
context.Users.user_info(m["ens_id"], REQUEST)["nomprenom"]
|
|
||||||
for m in M["ens"]
|
|
||||||
]
|
|
||||||
)
|
)
|
||||||
l = {
|
l = {
|
||||||
"UE": M["ue"]["acronyme"],
|
"UE": M["ue"]["acronyme"],
|
||||||
@ -670,7 +667,7 @@ def formsemestre_description_table(
|
|||||||
"Module": M["module"]["abbrev"] or M["module"]["titre"],
|
"Module": M["module"]["abbrev"] or M["module"]["titre"],
|
||||||
"_Module_class": "scotext",
|
"_Module_class": "scotext",
|
||||||
"Inscrits": len(ModInscrits),
|
"Inscrits": len(ModInscrits),
|
||||||
"Responsable": context.Users.user_info(M["responsable_id"])["nomprenom"],
|
"Responsable": sco_users.user_info(M["responsable_id"])["nomprenom"],
|
||||||
"_Responsable_class": "scotext",
|
"_Responsable_class": "scotext",
|
||||||
"Enseignants": enseignants,
|
"Enseignants": enseignants,
|
||||||
"_Enseignants_class": "scotext",
|
"_Enseignants_class": "scotext",
|
||||||
@ -1039,7 +1036,7 @@ def formsemestre_status(context, formsemestre_id=None, REQUEST=None):
|
|||||||
)
|
)
|
||||||
mails_enseignants = set(
|
mails_enseignants = set(
|
||||||
[
|
[
|
||||||
context.Users.user_info(ens_id, REQUEST)["email"]
|
sco_users.user_info(ens_id, REQUEST)["email"]
|
||||||
for ens_id in sem["responsables"]
|
for ens_id in sem["responsables"]
|
||||||
]
|
]
|
||||||
) # adr. mail des enseignants
|
) # adr. mail des enseignants
|
||||||
@ -1051,19 +1048,19 @@ def formsemestre_status(context, formsemestre_id=None, REQUEST=None):
|
|||||||
+ ", coef. "
|
+ ", coef. "
|
||||||
+ str(M["module"]["coefficient"])
|
+ str(M["module"]["coefficient"])
|
||||||
)
|
)
|
||||||
ModEns = context.Users.user_info(M["responsable_id"])["nomcomplet"]
|
ModEns = sco_users.user_info(M["responsable_id"])["nomcomplet"]
|
||||||
if M["ens"]:
|
if M["ens"]:
|
||||||
ModEns += " (resp.), " + ", ".join(
|
ModEns += " (resp.), " + ", ".join(
|
||||||
[context.Users.user_info(e["ens_id"])["nomcomplet"] for e in M["ens"]]
|
[sco_users.user_info(e["ens_id"])["nomcomplet"] for e in M["ens"]]
|
||||||
)
|
)
|
||||||
ModInscrits = sco_moduleimpl.do_moduleimpl_inscription_list(
|
ModInscrits = sco_moduleimpl.do_moduleimpl_inscription_list(
|
||||||
context, moduleimpl_id=M["moduleimpl_id"]
|
context, moduleimpl_id=M["moduleimpl_id"]
|
||||||
)
|
)
|
||||||
mails_enseignants.add(
|
mails_enseignants.add(
|
||||||
context.Users.user_info(M["responsable_id"], REQUEST)["email"]
|
sco_users.user_info(M["responsable_id"], REQUEST)["email"]
|
||||||
)
|
)
|
||||||
mails_enseignants |= set(
|
mails_enseignants |= set(
|
||||||
[context.Users.user_info(m["ens_id"], REQUEST)["email"] for m in M["ens"]]
|
[sco_users.user_info(m["ens_id"], REQUEST)["email"] for m in M["ens"]]
|
||||||
)
|
)
|
||||||
ue = M["ue"]
|
ue = M["ue"]
|
||||||
if prev_ue_id != ue["ue_id"]:
|
if prev_ue_id != ue["ue_id"]:
|
||||||
@ -1137,7 +1134,7 @@ def formsemestre_status(context, formsemestre_id=None, REQUEST=None):
|
|||||||
% (
|
% (
|
||||||
M["moduleimpl_id"],
|
M["moduleimpl_id"],
|
||||||
ModEns,
|
ModEns,
|
||||||
context.Users.user_info(M["responsable_id"])["prenomnom"],
|
sco_users.user_info(M["responsable_id"])["prenomnom"],
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -47,6 +47,7 @@ from app.scodoc import sco_groups
|
|||||||
from app.scodoc import sco_moduleimpl
|
from app.scodoc import sco_moduleimpl
|
||||||
from app.scodoc import sco_permissions_check
|
from app.scodoc import sco_permissions_check
|
||||||
from app.scodoc import sco_saisie_notes
|
from app.scodoc import sco_saisie_notes
|
||||||
|
from app.scodoc import sco_users
|
||||||
|
|
||||||
# ported from old DTML code in oct 2009
|
# ported from old DTML code in oct 2009
|
||||||
|
|
||||||
@ -197,7 +198,7 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
|
|||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="fichetitre2">Responsable: </td><td class="redboldtext">""",
|
<td class="fichetitre2">Responsable: </td><td class="redboldtext">""",
|
||||||
context.Users.user_info(M["responsable_id"])["nomprenom"],
|
sco_users.user_info(M["responsable_id"])["nomprenom"],
|
||||||
"""<span class="blacktt">(%(responsable_id)s)</span>""" % M,
|
"""<span class="blacktt">(%(responsable_id)s)</span>""" % M,
|
||||||
]
|
]
|
||||||
try:
|
try:
|
||||||
@ -210,7 +211,7 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
|
|||||||
pass
|
pass
|
||||||
H.append("""</td><td>""")
|
H.append("""</td><td>""")
|
||||||
H.append(
|
H.append(
|
||||||
", ".join([context.Users.user_info(m["ens_id"])["nomprenom"] for m in M["ens"]])
|
", ".join([sco_users.user_info(m["ens_id"])["nomprenom"] for m in M["ens"]])
|
||||||
)
|
)
|
||||||
H.append("""</td><td>""")
|
H.append("""</td><td>""")
|
||||||
try:
|
try:
|
||||||
|
@ -45,6 +45,7 @@ from app.scodoc.sco_utils import SCO_ENCODING, SCO_ANNONCES_WEBSITE
|
|||||||
from app.scodoc import sco_formsemestre
|
from app.scodoc import sco_formsemestre
|
||||||
from app.scodoc import sco_moduleimpl
|
from app.scodoc import sco_moduleimpl
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
|
from app.scodoc import sco_users
|
||||||
|
|
||||||
_scolar_news_editor = ndb.EditableTable(
|
_scolar_news_editor = ndb.EditableTable(
|
||||||
"scolar_news",
|
"scolar_news",
|
||||||
@ -85,7 +86,7 @@ def add(context, REQUEST, typ, object=None, text="", url=None, max_frequency=Fal
|
|||||||
cnx = ndb.GetDBConnexion()
|
cnx = ndb.GetDBConnexion()
|
||||||
args = {
|
args = {
|
||||||
"authenticated_user": authuser_name,
|
"authenticated_user": authuser_name,
|
||||||
"user_info": context.Users.user_info(user_name=authuser_name),
|
"user_info": sco_users.user_info(user_name=authuser_name),
|
||||||
"type": typ,
|
"type": typ,
|
||||||
"object": object,
|
"object": object,
|
||||||
"text": text,
|
"text": text,
|
||||||
@ -153,7 +154,7 @@ def scolar_news_summary(context, n=5):
|
|||||||
)
|
)
|
||||||
n["text"] += (
|
n["text"] += (
|
||||||
" par "
|
" par "
|
||||||
+ context.Users.user_info(user_name=n["authenticated_user"])["nomcomplet"]
|
+ sco_users.user_info(user_name=n["authenticated_user"])["nomcomplet"]
|
||||||
)
|
)
|
||||||
return news
|
return news
|
||||||
|
|
||||||
|
@ -49,6 +49,7 @@ from app.scodoc import sco_permissions
|
|||||||
from app.scodoc import sco_permissions_check
|
from app.scodoc import sco_permissions_check
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
from app.scodoc import sco_etud
|
from app.scodoc import sco_etud
|
||||||
|
from app.scodoc import sco_users
|
||||||
from app.scodoc.sco_codes_parcours import DEF, UE_SPORT
|
from app.scodoc.sco_codes_parcours import DEF, UE_SPORT
|
||||||
|
|
||||||
|
|
||||||
@ -621,7 +622,7 @@ def make_formsemestre_recapcomplet(
|
|||||||
cls,
|
cls,
|
||||||
mod["moduleimpl_id"],
|
mod["moduleimpl_id"],
|
||||||
mod["module"]["titre"],
|
mod["module"]["titre"],
|
||||||
context.Users.user_info(mod["responsable_id"])["nomcomplet"],
|
sco_users.user_info(mod["responsable_id"])["nomcomplet"],
|
||||||
F[0][i],
|
F[0][i],
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
|
@ -54,6 +54,7 @@ from app.scodoc import sco_evaluations
|
|||||||
from app.scodoc import sco_formsemestre
|
from app.scodoc import sco_formsemestre
|
||||||
from app.scodoc import sco_moduleimpl
|
from app.scodoc import sco_moduleimpl
|
||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
|
from app.scodoc import sco_users
|
||||||
from app.scodoc import VERSION
|
from app.scodoc import VERSION
|
||||||
from app.scodoc.gen_tables import GenTable
|
from app.scodoc.gen_tables import GenTable
|
||||||
|
|
||||||
@ -243,7 +244,7 @@ def get_note_history(context, evaluation_id, etudid, REQUEST=None, fmt=""):
|
|||||||
# et cherche nom complet de l'enseignant:
|
# et cherche nom complet de l'enseignant:
|
||||||
for x in history:
|
for x in history:
|
||||||
x["comment"] = x["comment"] or ""
|
x["comment"] = x["comment"] or ""
|
||||||
x["user_name"] = context.Users.user_info(x["uid"])["nomcomplet"]
|
x["user_name"] = sco_users.user_info(x["uid"])["nomcomplet"]
|
||||||
|
|
||||||
if fmt == "json":
|
if fmt == "json":
|
||||||
return scu.sendJSON(REQUEST, history)
|
return scu.sendJSON(REQUEST, history)
|
||||||
|
@ -54,7 +54,6 @@ from app.scodoc import sco_excel
|
|||||||
from app.scodoc import sco_preferences
|
from app.scodoc import sco_preferences
|
||||||
from app.scodoc.gen_tables import GenTable
|
from app.scodoc.gen_tables import GenTable
|
||||||
from app.scodoc.notes_log import log
|
from app.scodoc.notes_log import log
|
||||||
from app.scodoc.sco_permissions_check import can_handle_passwd
|
|
||||||
from app.scodoc.scolog import logdb
|
from app.scodoc.scolog import logdb
|
||||||
from app.scodoc.sco_etud import format_prenom, format_nom
|
from app.scodoc.sco_etud import format_prenom, format_nom
|
||||||
from app.scodoc.TrivialFormulator import TrivialFormulator, tf_error_message
|
from app.scodoc.TrivialFormulator import TrivialFormulator, tf_error_message
|
||||||
@ -160,6 +159,8 @@ def list_users(
|
|||||||
REQUEST=None,
|
REQUEST=None,
|
||||||
):
|
):
|
||||||
"List users, returns a table in the specified format"
|
"List users, returns a table in the specified format"
|
||||||
|
from app.scodoc.sco_permissions_check import can_handle_passwd
|
||||||
|
|
||||||
if dept and not all_depts:
|
if dept and not all_depts:
|
||||||
users = get_user_list(dept=dept, with_inactives=with_inactives)
|
users = get_user_list(dept=dept, with_inactives=with_inactives)
|
||||||
comm = "dept. %s" % dept.encode(scu.SCO_ENCODING) # sco8
|
comm = "dept. %s" % dept.encode(scu.SCO_ENCODING) # sco8
|
||||||
@ -325,6 +326,8 @@ def user_info_page(context, user_name=None, REQUEST=None):
|
|||||||
"""Display page of info about given user.
|
"""Display page of info about given user.
|
||||||
If user_name not specified, user current_user
|
If user_name not specified, user current_user
|
||||||
"""
|
"""
|
||||||
|
from app.scodoc.sco_permissions_check import can_handle_passwd
|
||||||
|
|
||||||
# peut on divulguer ces infos ?
|
# peut on divulguer ces infos ?
|
||||||
if not can_handle_passwd(current_user, allow_admindepts=True):
|
if not can_handle_passwd(current_user, allow_admindepts=True):
|
||||||
raise AccessDenied("Vous n'avez pas la permission de voir cette page")
|
raise AccessDenied("Vous n'avez pas la permission de voir cette page")
|
||||||
|
@ -41,6 +41,9 @@ from flask import current_app
|
|||||||
|
|
||||||
from config import Config
|
from config import Config
|
||||||
import scodoc_manager
|
import scodoc_manager
|
||||||
|
|
||||||
|
from app.auth.models import User
|
||||||
|
|
||||||
from app.decorators import (
|
from app.decorators import (
|
||||||
scodoc7func,
|
scodoc7func,
|
||||||
ScoDoc7Context,
|
ScoDoc7Context,
|
||||||
@ -779,7 +782,7 @@ def edit_enseignants_form(context, REQUEST, moduleimpl_id):
|
|||||||
"moduleimpl_status?moduleimpl_id=" + moduleimpl_id
|
"moduleimpl_status?moduleimpl_id=" + moduleimpl_id
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
ens_id = context.Users.get_user_name_from_nomplogin(tf[2]["ens_id"])
|
ens_id = User.get_user_name_from_nomplogin(tf[2]["ens_id"])
|
||||||
if not ens_id:
|
if not ens_id:
|
||||||
H.append(
|
H.append(
|
||||||
'<p class="help">Pour ajouter un enseignant, choisissez un nom dans le menu</p>'
|
'<p class="help">Pour ajouter un enseignant, choisissez un nom dans le menu</p>'
|
||||||
@ -875,9 +878,7 @@ def edit_moduleimpl_resp(context, REQUEST, moduleimpl_id):
|
|||||||
"moduleimpl_status?moduleimpl_id=" + moduleimpl_id
|
"moduleimpl_status?moduleimpl_id=" + moduleimpl_id
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
responsable_id = context.Users.get_user_name_from_nomplogin(
|
responsable_id = User.get_user_name_from_nomplogin(tf[2]["responsable_id"])
|
||||||
tf[2]["responsable_id"]
|
|
||||||
)
|
|
||||||
if (
|
if (
|
||||||
not responsable_id
|
not responsable_id
|
||||||
): # presque impossible: tf verifie les valeurs (mais qui peuvent changer entre temps)
|
): # presque impossible: tf verifie les valeurs (mais qui peuvent changer entre temps)
|
||||||
@ -1194,7 +1195,7 @@ def formsemestre_enseignants_list(context, REQUEST, formsemestre_id, format="htm
|
|||||||
|
|
||||||
# ajoute infos sur enseignant:
|
# ajoute infos sur enseignant:
|
||||||
for ens in sem_ens:
|
for ens in sem_ens:
|
||||||
sem_ens[ens].update(context.Users.user_info(ens))
|
sem_ens[ens].update(sco_users.user_info(ens))
|
||||||
if sem_ens[ens]["email"]:
|
if sem_ens[ens]["email"]:
|
||||||
sem_ens[ens]["_email_target"] = "mailto:%s" % sem_ens[ens]["email"]
|
sem_ens[ens]["_email_target"] = "mailto:%s" % sem_ens[ens]["email"]
|
||||||
|
|
||||||
@ -2566,5 +2567,3 @@ sco_publish(
|
|||||||
)
|
)
|
||||||
|
|
||||||
context.populate(globals())
|
context.populate(globals())
|
||||||
|
|
||||||
context.Users = scodoc_manager.FakeUsers()
|
|
||||||
|
@ -2006,5 +2006,3 @@ sco_publish(
|
|||||||
)
|
)
|
||||||
|
|
||||||
context.populate(globals())
|
context.populate(globals())
|
||||||
|
|
||||||
context.Users = scodoc_manager.FakeUsers()
|
|
||||||
|
@ -169,8 +169,6 @@ def create_user_form(context, REQUEST, user_name=None, edit=0):
|
|||||||
if displayed_roles_strings[i] not in editable_roles_strings:
|
if displayed_roles_strings[i] not in editable_roles_strings:
|
||||||
disabled_roles[i] = True
|
disabled_roles[i] = True
|
||||||
|
|
||||||
# stop() # XXX
|
|
||||||
|
|
||||||
descr = [
|
descr = [
|
||||||
("edit", {"input_type": "hidden", "default": edit}),
|
("edit", {"input_type": "hidden", "default": edit}),
|
||||||
("nom", {"title": "Nom", "size": 20, "allow_null": False}),
|
("nom", {"title": "Nom", "size": 20, "allow_null": False}),
|
||||||
@ -315,7 +313,6 @@ def create_user_form(context, REQUEST, user_name=None, edit=0):
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
# stop() # XXX
|
|
||||||
if "tf-submitted" in REQUEST.form and not "roles" in REQUEST.form:
|
if "tf-submitted" in REQUEST.form and not "roles" in REQUEST.form:
|
||||||
REQUEST.form["roles"] = []
|
REQUEST.form["roles"] = []
|
||||||
if "tf-submitted" in REQUEST.form:
|
if "tf-submitted" in REQUEST.form:
|
||||||
@ -337,7 +334,7 @@ def create_user_form(context, REQUEST, user_name=None, edit=0):
|
|||||||
if tf[0] == 0:
|
if tf[0] == 0:
|
||||||
return "\n".join(H) + "\n" + tf[1] + F
|
return "\n".join(H) + "\n" + tf[1] + F
|
||||||
elif tf[0] == -1:
|
elif tf[0] == -1:
|
||||||
return REQUEST.RESPONSE.redirect(context.UsersURL())
|
return REQUEST.RESPONSE.redirect(scu.UsersURL())
|
||||||
else:
|
else:
|
||||||
vals = tf[2]
|
vals = tf[2]
|
||||||
roles = set(vals["roles"]).intersection(editable_roles_strings)
|
roles = set(vals["roles"]).intersection(editable_roles_strings)
|
||||||
@ -366,7 +363,6 @@ def create_user_form(context, REQUEST, user_name=None, edit=0):
|
|||||||
return "\n".join(H) + "\n" + tf[1] + F
|
return "\n".join(H) + "\n" + tf[1] + F
|
||||||
|
|
||||||
if not force:
|
if not force:
|
||||||
# XXX x = stop()
|
|
||||||
ok, msg = sco_users.check_modif_user(
|
ok, msg = sco_users.check_modif_user(
|
||||||
edit,
|
edit,
|
||||||
user_name=user_name,
|
user_name=user_name,
|
||||||
|
@ -433,4 +433,4 @@ class ScoFake:
|
|||||||
|
|
||||||
# band aid for #sco8 dev (temporaire en attendant Users)
|
# band aid for #sco8 dev (temporaire en attendant Users)
|
||||||
class Sco8Context(object):
|
class Sco8Context(object):
|
||||||
Users = scodoc_manager.FakeUsers()
|
pass
|
||||||
|
@ -1,8 +1,15 @@
|
|||||||
|
# -*- mode: python -*-
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# XXX A REVOIR POUR SCODOC8
|
||||||
|
|
||||||
import random
|
import random
|
||||||
# La variable context est définie par le script de lancement
|
from app import db
|
||||||
# l'affecte ainsi pour évietr les warnins pylint:
|
from app.auth.models import User
|
||||||
context = context # pylint: disable=undefined-variable
|
from app.auth.models import Role
|
||||||
REQUEST = REQUEST # pylint: disable=undefined-variable
|
|
||||||
|
DEPT = "TEST"
|
||||||
|
|
||||||
import scotests.sco_fake_gen as sco_fake_gen # pylint: disable=import-error
|
import scotests.sco_fake_gen as sco_fake_gen # pylint: disable=import-error
|
||||||
|
|
||||||
G = sco_fake_gen.ScoFake(context.Notes)
|
G = sco_fake_gen.ScoFake(context.Notes)
|
||||||
@ -11,10 +18,12 @@ G.verbose = False
|
|||||||
# --- Création d'étudiants
|
# --- Création d'étudiants
|
||||||
etuds = [G.create_etud(code_nip=None) for _ in range(10)]
|
etuds = [G.create_etud(code_nip=None) for _ in range(10)]
|
||||||
|
|
||||||
# --- Création de l'utilisateur responsable du semestres, des modules etc....
|
# --- Création de l'utilisateur responsable du semestre, des modules etc....
|
||||||
|
user = User(user_name="unutil")
|
||||||
arg = {"passwd": "scodocpass", "user_name" : "unutil", "roles" :"Ens,RespPe"}
|
user.set_password("scodocpass")
|
||||||
user = context.Users.create_user(args=arg, REQUEST=REQUEST)
|
user.add_role(Role.get_named_role("Ens"), DEPT)
|
||||||
|
db.session.add(u)
|
||||||
|
db.session.commit()
|
||||||
print(user)
|
print(user)
|
||||||
|
|
||||||
# --- Création formation et de deux UE
|
# --- Création formation et de deux UE
|
||||||
@ -75,9 +84,13 @@ for module_id, formsemestre_id, responsable_id in [
|
|||||||
(mod11["module_id"], sem["formsemestre_id"], "bach"),
|
(mod11["module_id"], sem["formsemestre_id"], "bach"),
|
||||||
(mod12["module_id"], sem["formsemestre_id"], "bach"),
|
(mod12["module_id"], sem["formsemestre_id"], "bach"),
|
||||||
(mod21["module_id"], sem["formsemestre_id"], "bach"),
|
(mod21["module_id"], sem["formsemestre_id"], "bach"),
|
||||||
(mod22["module_id"], sem["formsemestre_id"], "bach")
|
(mod22["module_id"], sem["formsemestre_id"], "bach"),
|
||||||
] :
|
]:
|
||||||
mi = G.create_moduleimpl(module_id=module_id, formsemestre_id=formsemestre_id, responsable_id=responsable_id)
|
mi = G.create_moduleimpl(
|
||||||
|
module_id=module_id,
|
||||||
|
formsemestre_id=formsemestre_id,
|
||||||
|
responsable_id=responsable_id,
|
||||||
|
)
|
||||||
mods.append(mi)
|
mods.append(mi)
|
||||||
|
|
||||||
|
|
||||||
@ -88,7 +101,7 @@ for etud in etuds:
|
|||||||
|
|
||||||
# --- Création d'évaluations (2 par modules)
|
# --- Création d'évaluations (2 par modules)
|
||||||
|
|
||||||
evals=[]
|
evals = []
|
||||||
|
|
||||||
for moduleimpl_id, jour, description, coefficient in [
|
for moduleimpl_id, jour, description, coefficient in [
|
||||||
(mods[0]["moduleimpl_id"], "01/02/2021", "e1", 1.0),
|
(mods[0]["moduleimpl_id"], "01/02/2021", "e1", 1.0),
|
||||||
@ -99,19 +112,20 @@ for moduleimpl_id, jour, description, coefficient in [
|
|||||||
(mods[2]["moduleimpl_id"], "06/02/2021", "e6", 1.0),
|
(mods[2]["moduleimpl_id"], "06/02/2021", "e6", 1.0),
|
||||||
(mods[3]["moduleimpl_id"], "07/02/2021", "e7", 1.0),
|
(mods[3]["moduleimpl_id"], "07/02/2021", "e7", 1.0),
|
||||||
(mods[3]["moduleimpl_id"], "08/02/2021", "e8", 1.0),
|
(mods[3]["moduleimpl_id"], "08/02/2021", "e8", 1.0),
|
||||||
] :
|
]:
|
||||||
e = G.create_evaluation(moduleimpl_id=moduleimpl_id, jour=jour, description=description, coefficient=coefficient)
|
e = G.create_evaluation(
|
||||||
|
moduleimpl_id=moduleimpl_id,
|
||||||
|
jour=jour,
|
||||||
|
description=description,
|
||||||
|
coefficient=coefficient,
|
||||||
|
)
|
||||||
evals.append(e)
|
evals.append(e)
|
||||||
|
|
||||||
|
|
||||||
# --- Saisie des notes aléatoires
|
# --- Saisie des notes aléatoires
|
||||||
|
|
||||||
for eval in evals :
|
for eval in evals:
|
||||||
for etud in etuds:
|
for etud in etuds:
|
||||||
nb_changed, nb_suppress, existing_decisions = G.create_note(
|
nb_changed, nb_suppress, existing_decisions = G.create_note(
|
||||||
evaluation=eval, etud=etud, note=float(random.randint(0, 20))
|
evaluation=eval, etud=etud, note=float(random.randint(0, 20))
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
""" Créer un utilisateur, recupérer ses infos, changer son mdp, le supprimer """
|
|
||||||
|
|
||||||
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 ZScoUsers
|
|
||||||
import ZScoDoc
|
|
||||||
import ZScolar
|
|
||||||
|
|
||||||
nomdept = raw_input(
|
|
||||||
"Quel est le nom de votre département test? ATTENTION A NE PAS VOUS TROMPER : "
|
|
||||||
)
|
|
||||||
|
|
||||||
# --- Création d'un utilisateur
|
|
||||||
|
|
||||||
arg = {
|
|
||||||
"passwd": "scodocpass",
|
|
||||||
"user_name": "unutil",
|
|
||||||
"nom": "unnom",
|
|
||||||
"prenom": "unprenom",
|
|
||||||
"email": "unemail@mail.fr",
|
|
||||||
"roles": "Ens" + nomdept + ",RespPe" + nomdept,
|
|
||||||
}
|
|
||||||
# user1 = context.Users.create_user(args=arg, REQUEST=REQUEST)
|
|
||||||
user_info1 = context.Users.user_info(user_name="unutil")
|
|
||||||
|
|
||||||
assert user_info1["email"] == arg["email"]
|
|
||||||
assert user_info1["user_name"] == arg["user_name"]
|
|
||||||
assert user_info1["nom"] == "unnom"
|
|
||||||
assert user_info1["prenom"] == "unprenom"
|
|
||||||
assert user_info1["roles"] == arg["roles"]
|
|
||||||
|
|
||||||
|
|
||||||
# --- Récupération de la liste des Users
|
|
||||||
|
|
||||||
liste_xml = context.Users.get_user_list_xml(REQUEST=REQUEST)
|
|
||||||
print(liste_xml)
|
|
||||||
|
|
||||||
liste_user = context.Users.get_userlist()
|
|
||||||
len_liu1 = len(liste_user)
|
|
||||||
|
|
||||||
assert user_info1 in liste_user # le nouvel utilisateur est bien dans la liste !
|
|
||||||
|
|
||||||
# --- Récupérer user_name à partir de nomplogin
|
|
||||||
|
|
||||||
user_name1 = context.Users.get_user_name_from_nomplogin(
|
|
||||||
nomplogin=user_info1["nomplogin"]
|
|
||||||
)
|
|
||||||
assert user_name1 == "unutil"
|
|
||||||
|
|
||||||
# --- Changement du mot de passe de l'utilisateur
|
|
||||||
|
|
||||||
context.Users.do_change_password(user_name="unutil", password="scodocpass2")
|
|
||||||
# vérification du mdp changé directement sur scodoc web car je ne trouve pas comment récupérer le mdp en python
|
|
||||||
# Vérification : ok!
|
|
||||||
|
|
||||||
# --- Supression d'un utilisateur
|
|
||||||
|
|
||||||
# context.Users.delete_user_form(REQUEST=REQUEST, user_name="unutil")
|
|
||||||
|
|
||||||
# --- Test de la récupération de l'URL
|
|
||||||
|
|
||||||
url = context.Users.UsersURL()
|
|
||||||
assert url == "ScoDoc/" + nomdept + "/Scolarite/Users"
|
|
||||||
|
|
||||||
"""
|
|
||||||
Commentaire :
|
|
||||||
|
|
||||||
La supression d'un utilisateur ne fonctionne pas car nécessite l'envoie d'un formulaire.
|
|
||||||
|
|
||||||
"""
|
|
Loading…
Reference in New Issue
Block a user