diff --git a/app/scodoc/ZScoDoc.py b/app/scodoc/ZScoDoc.py
index 222e115717..68ffa34d90 100644
--- a/app/scodoc/ZScoDoc.py
+++ b/app/scodoc/ZScoDoc.py
@@ -803,7 +803,7 @@ ErrorType: %(error_type)s
last_dept = None
last_date = None
for (dept, etuds) in depts_etud:
- dept.Scolarite.fillEtudsInfo(etuds)
+ scolars.fillEtudsInfo(self, etuds)
etud = etuds[0]
if etud["sems"]:
if (not last_date) or (etud["sems"][0]["date_fin_iso"] > last_date):
diff --git a/app/scodoc/htmlutils.py b/app/scodoc/htmlutils.py
index f75d9ccf17..c608020e2b 100644
--- a/app/scodoc/htmlutils.py
+++ b/app/scodoc/htmlutils.py
@@ -27,6 +27,7 @@
"""Various HTML generation functions
"""
+from flask import g, url_for
import listhistogram
@@ -71,13 +72,14 @@ def histogram_notes(notes):
return "\n".join(D)
-def make_menu(title, items, css_class="", base_url="", alone=False):
+def make_menu(title, items, css_class="", alone=False):
"""HTML snippet to render a simple drop down menu.
items is a list of dicts:
{ 'title' :
- 'url' :
+ 'endpoint' : flask endpoint (name of the function)
+ 'args' : url query args
'id' :
- 'attr' : "" # optionnal html attributes
+ 'attr' : "" # optional html attributes
'enabled' : # True by default
'helpmsg' :
'submenu' : [ list of sub-items ]
@@ -96,10 +98,11 @@ def make_menu(title, items, css_class="", base_url="", alone=False):
li_id = 'id="%s" ' % the_id
else:
li_id = ""
- if base_url and "url" in item:
- item["urlq"] = base_url + item["url"]
+ if "endpoint" in items:
+ args = item.get("args", {})
+ item["urlq"] = url_for(endpoint, scodoc_dept=g.scodoc_dept, **args)
else:
- item["urlq"] = item.get("url", "#")
+ item["urlq"] = "#"
item["attr"] = item.get("attr", "")
submenu = item.get("submenu", None)
H.append(
diff --git a/app/scodoc/mails.py b/app/scodoc/mails.py
index 6a1944b7cc..69d4b63cce 100644
--- a/app/scodoc/mails.py
+++ b/app/scodoc/mails.py
@@ -118,7 +118,7 @@ def _report_request(context, REQUEST, fmt="txt"):
HTTP_USER_AGENT=HTTP_USER_AGENT,
form=REQUEST.get("form", ""),
HTTP_X_FORWARDED_FOR=REQUEST.get("HTTP_X_FORWARDED_FOR", ""),
- svn_version=scu.get_svn_version(context.file_path),
+ svn_version=scu.get_svn_version(scu.SCO_SRC_DIR),
SCOVERSION=VERSION.SCOVERSION,
)
txt = (
diff --git a/app/scodoc/notes_log.py b/app/scodoc/notes_log.py
index 0cbbb92e1b..2f19c320c3 100644
--- a/app/scodoc/notes_log.py
+++ b/app/scodoc/notes_log.py
@@ -21,7 +21,6 @@ from email.MIMEBase import MIMEBase # pylint: disable=no-name-in-module,import-
from email.Header import Header # pylint: disable=no-name-in-module,import-error
from email import Encoders # pylint: disable=no-name-in-module,import-error
-import mails
# Simple & stupid file logguer, used only to debug
# (logging to SQL is done in scolog)
@@ -113,6 +112,7 @@ def retreive_dept():
# Alarms by email:
def sendAlarm(context, subj, txt):
import sco_utils
+ import mails
msg = MIMEMultipart()
subj = Header(subj, sco_utils.SCO_ENCODING)
diff --git a/app/scodoc/sco_bulletins.py b/app/scodoc/sco_bulletins.py
index cbad075431..257db2e5f3 100644
--- a/app/scodoc/sco_bulletins.py
+++ b/app/scodoc/sco_bulletins.py
@@ -1090,14 +1090,14 @@ def _formsemestre_bulletinetud_header_html(
H.append('' % (v, selected, e))
H.append("""""")
# Menu
- url = REQUEST.URL0
+ endpoint = "notes.formsemestre_bulletinetud"
qurl = urllib.quote_plus(url + "?" + REQUEST.QUERY_STRING)
menuBul = [
{
"title": "Réglages bulletins",
- "url": "formsemestre_edit_options?formsemestre_id=%s&target_url=%s"
- % (formsemestre_id, qurl),
+ "endpoint": "notes.formsemestre_edit_options",
+ "args": {"formsemestre_id": formsemestre_id, "target_url": qurl},
"enabled": (uid in sem["responsables"])
or authuser.has_permission(Permission.ScoImplement, context),
},
@@ -1106,15 +1106,23 @@ def _formsemestre_bulletinetud_header_html(
% sco_bulletins_generator.bulletin_get_class_name_displayed(
context, formsemestre_id
),
- "url": url
- + "?formsemestre_id=%s&etudid=%s&format=pdf&version=%s"
- % (formsemestre_id, etudid, version),
+ "endpoint": endpoint,
+ "args": {
+ "formsemestre_id": formsemestre_id,
+ "etudid": etudid,
+ "version": version,
+ "format": "pdf",
+ },
},
{
"title": "Envoi par mail à %s" % etud["email"],
- "url": url
- + "?formsemestre_id=%s&etudid=%s&format=pdfmail&version=%s"
- % (formsemestre_id, etudid, version),
+ "endpoint": endpoint,
+ "args": {
+ "formsemestre_id": formsemestre_id,
+ "etudid": etudid,
+ "version": version,
+ "format": "pdfmail",
+ },
"enabled": etud["email"]
and can_send_bulletin_by_mail(
context, formsemestre_id, REQUEST
@@ -1122,9 +1130,14 @@ def _formsemestre_bulletinetud_header_html(
},
{
"title": "Envoi par mail à %s (adr. personnelle)" % etud["emailperso"],
- "url": url
- + "?formsemestre_id=%s&etudid=%s&format=pdfmail&version=%s&prefer_mail_perso=1"
- % (formsemestre_id, etudid, version),
+ "endpoint": endpoint,
+ "args": {
+ "formsemestre_id": formsemestre_id,
+ "etudid": etudid,
+ "version": version,
+ "format": "pdfmail",
+ "prefer_mail_perso": 1,
+ },
"enabled": etud["emailperso"]
and can_send_bulletin_by_mail(
context, formsemestre_id, REQUEST
@@ -1132,14 +1145,21 @@ def _formsemestre_bulletinetud_header_html(
},
{
"title": "Version XML",
- "url": url
- + "?formsemestre_id=%s&etudid=%s&format=xml&version=%s"
- % (formsemestre_id, etudid, version),
+ "endpoint": endpoint,
+ "args": {
+ "formsemestre_id": formsemestre_id,
+ "etudid": etudid,
+ "version": version,
+ "format": "xml",
+ },
},
{
"title": "Ajouter une appréciation",
- "url": "appreciation_add_form?etudid=%s&formsemestre_id=%s"
- % (etudid, formsemestre_id),
+ "endpoint": "notes.appreciation_add_form",
+ "args": {
+ "formsemestre_id": formsemestre_id,
+ "etudid": etudid,
+ },
"enabled": (
(authuser in sem["responsables"])
or (authuser.has_permission(Permission.ScoEtudInscrit, context))
@@ -1147,32 +1167,47 @@ def _formsemestre_bulletinetud_header_html(
},
{
"title": "Enregistrer un semestre effectué ailleurs",
- "url": "formsemestre_ext_create_form?etudid=%s&formsemestre_id=%s"
- % (etudid, formsemestre_id),
+ "endpoint": "notes.formsemestre_ext_create_form",
+ "args": {
+ "formsemestre_id": formsemestre_id,
+ "etudid": etudid,
+ },
"enabled": authuser.has_permission(Permission.ScoImplement, context),
},
{
"title": "Enregistrer une validation d'UE antérieure",
- "url": "formsemestre_validate_previous_ue?etudid=%s&formsemestre_id=%s"
- % (etudid, formsemestre_id),
+ "endpoint": "notes.formsemestre_validate_previous_ue",
+ "args": {
+ "formsemestre_id": formsemestre_id,
+ "etudid": etudid,
+ },
"enabled": context._can_validate_sem(REQUEST, formsemestre_id),
},
{
"title": "Enregistrer note d'une UE externe",
- "url": "external_ue_create_form?etudid=%s&formsemestre_id=%s"
- % (etudid, formsemestre_id),
+ "endpoint": "notes.external_ue_create_form",
+ "args": {
+ "formsemestre_id": formsemestre_id,
+ "etudid": etudid,
+ },
"enabled": context._can_validate_sem(REQUEST, formsemestre_id),
},
{
"title": "Entrer décisions jury",
- "url": "formsemestre_validation_etud_form?formsemestre_id=%s&etudid=%s"
- % (formsemestre_id, etudid),
+ "endpoint": "notes.formsemestre_validation_etud_form",
+ "args": {
+ "formsemestre_id": formsemestre_id,
+ "etudid": etudid,
+ },
"enabled": context._can_validate_sem(REQUEST, formsemestre_id),
},
{
"title": "Editer PV jury",
- "url": "formsemestre_pvjury_pdf?formsemestre_id=%s&etudid=%s"
- % (formsemestre_id, etudid),
+ "endpoint": "notes.formsemestre_pvjury_pdf",
+ "args": {
+ "formsemestre_id": formsemestre_id,
+ "etudid": etudid,
+ },
"enabled": True,
},
]
diff --git a/app/scodoc/sco_edit_formation.py b/app/scodoc/sco_edit_formation.py
index ec9ccb3911..0c915e0fe5 100644
--- a/app/scodoc/sco_edit_formation.py
+++ b/app/scodoc/sco_edit_formation.py
@@ -35,7 +35,7 @@ from TrivialFormulator import TrivialFormulator, TF, tf_error_message
import sco_codes_parcours
import sco_formsemestre
from sco_exceptions import ScoValueError
-import sco_formation
+import sco_formations
def formation_delete(context, formation_id=None, dialog_confirmed=False, REQUEST=None):
@@ -271,7 +271,7 @@ def do_formation_edit(context, args):
del args["formation_code"]
cnx = context.GetDBConnexion()
- sco_formation._formationEditor.edit(cnx, args)
+ sco_formations._formationEditor.edit(cnx, args)
# Invalide les semestres utilisant cette formation:
for sem in sco_formsemestre.do_formsemestre_list(
diff --git a/app/scodoc/sco_find_etud.py b/app/scodoc/sco_find_etud.py
index d93be419cf..c43fb896df 100644
--- a/app/scodoc/sco_find_etud.py
+++ b/app/scodoc/sco_find_etud.py
@@ -120,8 +120,10 @@ def search_etud_in_dept(context, expnom="", REQUEST=None):
etuds = [] # si expnom est trop court, n'affiche rien
if len(etuds) == 1:
- # va directement a la destination
- return context.ficheEtud(etudid=etuds[0]["etudid"], REQUEST=REQUEST)
+ # va directement a la fiche
+ return REQUEST.RESPONSE.redirect(
+ context.NotesURL() + "/ficheEtud?etudid=" + etuds[0]["etudid"]
+ )
H = [
html_sco_header.sco_header(
@@ -199,7 +201,7 @@ def search_etuds_infos(context, expnom=None, code_nip=None, REQUEST=None):
etuds = scolars.etudident_list(cnx, args={"code_nip": code_nip})
else:
etuds = []
- context.fillEtudsInfo(etuds)
+ scolars.fillEtudsInfo(context, etuds)
return etuds
diff --git a/app/scodoc/sco_formsemestre_custommenu.py b/app/scodoc/sco_formsemestre_custommenu.py
index cff50054ff..ce6b98734f 100644
--- a/app/scodoc/sco_formsemestre_custommenu.py
+++ b/app/scodoc/sco_formsemestre_custommenu.py
@@ -57,7 +57,7 @@ def formsemestre_custommenu_get(context, formsemestre_id):
return vals
-def formsemestre_custommenu_html(context, formsemestre_id, base_url=""):
+def formsemestre_custommenu_html(context, formsemestre_id):
"HTML code for custom menu"
menu = []
# Calendrier électronique ?
@@ -69,9 +69,8 @@ def formsemestre_custommenu_html(context, formsemestre_id, base_url=""):
menu.append(
{
"title": "Modifier ce menu...",
- "url": base_url
- + "formsemestre_custommenu_edit?formsemestre_id="
- + formsemestre_id,
+ "endpoint": "notes.formsemestre_custommenu_edit",
+ "args": {"formsemestre_id": formsemestre_id},
}
)
return sco_formsemestre_status.htmlutils.make_menu("Liens", menu)
@@ -84,7 +83,9 @@ def formsemestre_custommenu_edit(context, formsemestre_id, REQUEST=None):
context.NotesURL() + "/formsemestre_status?formsemestre_id=%s" % formsemestre_id
)
H = [
- html_sco_header.html_sem_header(context, REQUEST, "Modification du menu du semestre ", sem),
+ html_sco_header.html_sem_header(
+ context, REQUEST, "Modification du menu du semestre ", sem
+ ),
"""Ce menu, spécifique à chaque semestre, peut être utilisé pour placer des liens vers vos applications préférées.
Procédez en plusieurs fois si vous voulez ajouter plusieurs items.
""",
]
@@ -127,7 +128,9 @@ def formsemestre_custommenu_edit(context, formsemestre_id, REQUEST=None):
name="tf",
)
if tf[0] == 0:
- return "\n".join(H) + "\n" + tf[1] + html_sco_header.sco_footer(context, REQUEST)
+ return (
+ "\n".join(H) + "\n" + tf[1] + html_sco_header.sco_footer(context, REQUEST)
+ )
elif tf[0] == -1:
return REQUEST.RESPONSE.redirect(dest_url)
else:
diff --git a/app/scodoc/sco_formsemestre_status.py b/app/scodoc/sco_formsemestre_status.py
index bac3529dee..f241b1f7bc 100644
--- a/app/scodoc/sco_formsemestre_status.py
+++ b/app/scodoc/sco_formsemestre_status.py
@@ -76,54 +76,56 @@ def defMenuStats(context, formsemestre_id):
return [
{
"title": "Statistiques...",
- "url": "formsemestre_report_counts?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_report_counts",
+ "args": {"formsemestre_id": formsemestre_id},
},
{
"title": "Suivi de cohortes",
- "url": "formsemestre_suivi_cohorte?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_suivi_cohorte",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
},
{
"title": "Graphe des parcours",
- "url": "formsemestre_graph_parcours?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_graph_parcours",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": scu.WITH_PYDOT,
},
{
"title": "Codes des parcours",
- "url": "formsemestre_suivi_parcours?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_suivi_parcours",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
},
{
"title": "Lycées d'origine",
- "url": "formsemestre_etuds_lycees?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_etuds_lycees",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
},
{
"title": 'Table "poursuite"',
- "url": "formsemestre_poursuite_report?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_poursuite_report",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
},
{
"title": "Documents Avis Poursuite Etudes",
- "url": "pe_view_sem_recap?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.pe_view_sem_recap",
+ "args": {"formsemestre_id": formsemestre_id},
+ "enabled": True,
+ },
+ {
+ "title": 'Table "débouchés"',
+ "endpoint": "notes.report_debouche_date",
"enabled": True,
},
- {"title": 'Table "débouchés"', "url": "report_debouche_date", "enabled": True},
{
"title": "Estimation du coût de la formation",
- "url": "formsemestre_estim_cost?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_estim_cost?formsemestre_id",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
},
- # { 'title' : 'experimental sub',
- # 'submenu' : [
- # { 'title' : 'sous 1',
- # 'url' : '#' },
- # { 'title' : 'sous 2',
- # 'url' : '#' },
- # { 'title' : 'sous 3',
- # 'url' : '#' },
- # ]
- # },
]
@@ -142,20 +144,23 @@ def formsemestre_status_menubar(context, sem, REQUEST):
menuSemestre = [
{
"title": "Tableau de bord",
- "url": "formsemestre_status?formsemestre_id=%(formsemestre_id)s" % sem,
+ "endpoint": "notes.formsemestre_status",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
"helpmsg": "Tableau de bord du semestre",
},
{
"title": "Voir la formation %(acronyme)s (v%(version)s)" % F,
- "url": "ue_list?formation_id=%(formation_id)s" % sem,
+ "endpoint": "notes.ue_list",
+ "args": {"formation_id": sem["formation_id"]},
"enabled": True,
"helpmsg": "Tableau de bord du semestre",
},
{
"title": "Modifier le semestre",
- "url": "formsemestre_editwithmodules?formation_id=%(formation_id)s&formsemestre_id=%(formsemestre_id)s"
+ "endpoint": "notes.formsemestre_editwithmodules?formation_id=%(formation_id)s&formsemestre_id=%(formsemestre_id)s"
% sem,
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": (
authuser.has_permission(Permission.ScoImplement, context)
or (
@@ -168,8 +173,8 @@ def formsemestre_status_menubar(context, sem, REQUEST):
},
{
"title": "Préférences du semestre",
- "url": "formsemestre_edit_preferences?formsemestre_id=%(formsemestre_id)s"
- % sem,
+ "endpoint": "notes.formsemestre_edit_preferences",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": (
authuser.has_permission(Permission.ScoImplement, context)
or (
@@ -182,64 +187,71 @@ def formsemestre_status_menubar(context, sem, REQUEST):
},
{
"title": "Réglages bulletins",
- "url": "formsemestre_edit_options?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_edit_options",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": (uid in sem["responsables"])
or authuser.has_permission(Permission.ScoImplement, context),
"helpmsg": "Change les options",
},
{
"title": change_lock_msg,
- "url": "formsemestre_change_lock?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_change_lock",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": (uid in sem["responsables"])
or authuser.has_permission(Permission.ScoImplement, context),
"helpmsg": "",
},
{
"title": "Description du semestre",
- "url": "formsemestre_description?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_description",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
"helpmsg": "",
},
{
"title": "Vérifier absences aux évaluations",
- "url": "formsemestre_check_absences_html?formsemestre_id="
- + formsemestre_id,
+ "endpoint": "notes.formsemestre_check_absences_html",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
"helpmsg": "",
},
{
"title": "Lister tous les enseignants",
- "url": "formsemestre_enseignants_list?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_enseignants_list",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
"helpmsg": "",
},
{
"title": "Cloner ce semestre",
- "url": "formsemestre_clone?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_clone",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": authuser.has_permission(Permission.ScoImplement, context),
"helpmsg": "",
},
{
"title": "Associer à une nouvelle version du programme",
- "url": "formsemestre_associate_new_version?formsemestre_id="
- + formsemestre_id,
+ "endpoint": "notes.formsemestre_associate_new_version",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": authuser.has_permission(Permission.ScoChangeFormation, context)
and (sem["etat"] == "1"),
"helpmsg": "",
},
{
"title": "Supprimer ce semestre",
- "url": "formsemestre_delete?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_delete",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": authuser.has_permission(Permission.ScoImplement, context),
"helpmsg": "",
},
]
# debug :
- if uid == "root" or uid[:7] == "viennet":
+ if app.config["ENV"] == "development":
menuSemestre.append(
{
"title": "Check integrity",
- "url": "check_sem_integrity?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.check_sem_integrity",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
}
)
@@ -247,79 +259,82 @@ def formsemestre_status_menubar(context, sem, REQUEST):
menuInscriptions = [
{
"title": "Voir les inscriptions aux modules",
- "url": "moduleimpl_inscriptions_stats?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.moduleimpl_inscriptions_stats",
+ "args": {"formsemestre_id": formsemestre_id},
}
]
menuInscriptions += [
{
"title": "Passage des étudiants depuis d'autres semestres",
- "url": "formsemestre_inscr_passage?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_inscr_passage",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": authuser.has_permission(Permission.ScoEtudInscrit, context)
and (sem["etat"] == "1"),
},
{
"title": "Synchroniser avec étape Apogée",
- "url": "formsemestre_synchro_etuds?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_synchro_etuds",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": authuser.has_permission(Permission.ScoView, context)
and sco_preferences.get_preference(context, "portal_url")
and (sem["etat"] == "1"),
},
{
"title": "Inscrire un étudiant",
- "url": "formsemestre_inscription_with_modules_etud?formsemestre_id="
- + formsemestre_id,
+ "endpoint": "notes.formsemestre_inscription_with_modules_etud",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": authuser.has_permission(Permission.ScoEtudInscrit, context)
and (sem["etat"] == "1"),
},
{
"title": "Importer des étudiants dans ce semestre (table Excel)",
- "url": "form_students_import_excel?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.form_students_import_excel",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": authuser.has_permission(Permission.ScoEtudInscrit, context)
and (sem["etat"] == "1"),
},
{
"title": "Import/export des données admission",
- "url": "form_students_import_infos_admissions?formsemestre_id="
- + formsemestre_id,
+ "endpoint": "notes.form_students_import_infos_admissions",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": authuser.has_permission(Permission.ScoView, context),
},
{
"title": "Resynchroniser données identité",
- "url": "formsemestre_import_etud_admission?formsemestre_id="
- + formsemestre_id,
+ "endpoint": "notes.formsemestre_import_etud_admission",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": authuser.has_permission(Permission.ScoEtudChangeAdr, context)
and sco_preferences.get_preference(context, "portal_url"),
},
{
"title": "Exporter table des étudiants",
- "url": "groups_view?format=allxls&group_ids="
- + sco_groups.get_default_group(
- context, formsemestre_id, fix_if_missing=True, REQUEST=REQUEST
- ),
+ "endpoint": "notes.groups_view",
+ "args": {
+ "format": allxls,
+ "group_ids": sco_groups.get_default_group(
+ context, formsemestre_id, fix_if_missing=True, REQUEST=REQUEST
+ ),
+ },
},
{
"title": "Vérifier inscriptions multiples",
- "url": "formsemestre_inscrits_ailleurs?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_inscrits_ailleurs",
+ "args": {"formsemestre_id": formsemestre_id},
},
]
menuGroupes = [
{
"title": "Listes, photos, feuilles...",
- "url": "groups_view?formsemestre_id=" + formsemestre_id,
- "enabled": True,
- "helpmsg": "Accès aux listes des groupes d'étudiants",
- },
- # On laisse l'accès à l'ancienne page, le temps de tester
- {
- "title": "Listes (ancienne page)",
- "url": "formsemestre_lists?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.groups_view",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
"helpmsg": "Accès aux listes des groupes d'étudiants",
},
{
"title": "Créer/modifier les partitions...",
- "url": "editPartitionForm?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.editPartitionForm",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": sco_groups.can_change_groups(context, REQUEST, formsemestre_id),
},
]
@@ -335,7 +350,8 @@ def formsemestre_status_menubar(context, sem, REQUEST):
submenu.append(
{
"title": "%s" % partition["partition_name"],
- "url": "affectGroups?partition_id=%s" % partition["partition_id"],
+ "endpoint": "notes.affectGroups",
+ "args": {"partition_id": partition["partition_id"]},
"enabled": enabled,
}
)
@@ -346,60 +362,74 @@ def formsemestre_status_menubar(context, sem, REQUEST):
menuNotes = [
{
"title": "Tableau des moyennes (et liens bulletins)",
- "url": "formsemestre_recapcomplet?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_recapcomplet",
+ "args": {"formsemestre_id": formsemestre_id},
},
{
"title": "Saisie des notes",
- "url": "formsemestre_status?formsemestre_id=%(formsemestre_id)s" % sem,
+ "endpoint": "notes.formsemestre_status",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": True,
"helpmsg": "Tableau de bord du semestre",
},
{
"title": "Classeur PDF des bulletins",
- "url": "formsemestre_bulletins_pdf_choice?formsemestre_id="
- + formsemestre_id,
+ "endpoint": "notes.formsemestre_bulletins_pdf_choice",
+ "args": {"formsemestre_id": formsemestre_id},
"helpmsg": "PDF regroupant tous les bulletins",
},
{
"title": "Envoyer à chaque étudiant son bulletin par e-mail",
- "url": "formsemestre_bulletins_mailetuds_choice?formsemestre_id="
- + formsemestre_id,
+ "endpoint": "notes.formsemestre_bulletins_mailetuds_choice",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": sco_bulletins.can_send_bulletin_by_mail(
context, formsemestre_id, REQUEST
),
},
{
"title": "Calendrier des évaluations",
- "url": "formsemestre_evaluations_cal?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_evaluations_cal",
+ "args": {"formsemestre_id": formsemestre_id},
},
{
"title": "Lister toutes les saisies de notes",
- "url": "formsemestre_list_saisies_notes?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_list_saisies_notes",
+ "args": {"formsemestre_id": formsemestre_id},
},
]
menuJury = [
{
"title": "Voir les décisions du jury",
- "url": "formsemestre_pvjury?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_pvjury",
+ "args": {"formsemestre_id": formsemestre_id},
},
{
"title": "Générer feuille préparation Jury",
- "url": "feuille_preparation_jury?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.feuille_preparation_jury",
+ "args": {"formsemestre_id": formsemestre_id},
},
{
"title": "Saisie des décisions du jury",
- "url": "formsemestre_recapcomplet?modejury=1&hidemodules=1&hidebac=1&pref_override=0&formsemestre_id="
- + formsemestre_id,
+ "endpoint": "notes.formsemestre_recapcomplet",
+ "args": {
+ "formsemestre_id": formsemestre_id,
+ "modejury": 1,
+ "hidemodules": 1,
+ "hidebac": 1,
+ "pref_override": 0,
+ },
"enabled": context._can_validate_sem(REQUEST, formsemestre_id),
},
{
"title": "Editer les PV et archiver les résultats",
- "url": "formsemestre_archive?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_archive",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": context._can_edit_pv(REQUEST, formsemestre_id),
},
{
"title": "Documents archivés",
- "url": "formsemestre_list_archives?formsemestre_id=" + formsemestre_id,
+ "endpoint": "notes.formsemestre_list_archives",
+ "args": {"formsemestre_id": formsemestre_id},
"enabled": sco_archives.PVArchive.list_obj_archives(
context, formsemestre_id
),
@@ -407,17 +437,16 @@ def formsemestre_status_menubar(context, sem, REQUEST):
]
menuStats = defMenuStats(context, formsemestre_id)
- base_url = context.absolute_url() + "/" # context must be Notes
H = [
#
'
]
diff --git a/app/scodoc/sco_moduleimpl_inscriptions.py b/app/scodoc/sco_moduleimpl_inscriptions.py
index 30e2905fa4..5e8d34a07a 100644
--- a/app/scodoc/sco_moduleimpl_inscriptions.py
+++ b/app/scodoc/sco_moduleimpl_inscriptions.py
@@ -210,7 +210,7 @@ def _make_menu(context, partitions, title="", check="true"):
)
return (
'"
)
diff --git a/app/scodoc/sco_moduleimpl_status.py b/app/scodoc/sco_moduleimpl_status.py
index 450aa198d3..03c8db3e73 100644
--- a/app/scodoc/sco_moduleimpl_status.py
+++ b/app/scodoc/sco_moduleimpl_status.py
@@ -28,7 +28,6 @@
"""Tableau de bord module
"""
import time
-import urllib
import sco_utils as scu
from sco_utils import (
@@ -80,21 +79,30 @@ def moduleimpl_evaluation_menu(context, evaluation_id, nbnotes=0, REQUEST=None):
menuEval = [
{
"title": "Saisir notes",
- "url": "saisie_notes?evaluation_id=" + evaluation_id,
+ "endpoint": "notes.saisie_notes",
+ "args": {
+ "evaluation_id": evaluation_id,
+ },
"enabled": sco_saisie_notes.can_edit_notes(
context, REQUEST.AUTHENTICATED_USER, E["moduleimpl_id"]
),
},
{
"title": "Modifier évaluation",
- "url": "evaluation_edit?evaluation_id=" + evaluation_id,
+ "endpoint": "notes.evaluation_edit",
+ "args": {
+ "evaluation_id": evaluation_id,
+ },
"enabled": sco_saisie_notes.can_edit_notes(
context, REQUEST.AUTHENTICATED_USER, E["moduleimpl_id"], allow_ens=False
),
},
{
"title": sup_label,
- "url": "evaluation_delete?evaluation_id=" + evaluation_id,
+ "endpoint": "notes.evaluation_delete",
+ "args": {
+ "evaluation_id": evaluation_id,
+ },
"enabled": nbnotes == 0
and sco_saisie_notes.can_edit_notes(
context, REQUEST.AUTHENTICATED_USER, E["moduleimpl_id"], allow_ens=False
@@ -102,19 +110,28 @@ def moduleimpl_evaluation_menu(context, evaluation_id, nbnotes=0, REQUEST=None):
},
{
"title": "Supprimer toutes les notes",
- "url": "evaluation_suppress_alln?evaluation_id=" + evaluation_id,
+ "endpoint": "notes.evaluation_suppress_alln",
+ "args": {
+ "evaluation_id": evaluation_id,
+ },
"enabled": sco_saisie_notes.can_edit_notes(
context, REQUEST.AUTHENTICATED_USER, E["moduleimpl_id"], allow_ens=False
),
},
{
"title": "Afficher les notes",
- "url": "evaluation_listenotes?evaluation_id=" + evaluation_id,
+ "endpoint": "notes.evaluation_listenotes",
+ "args": {
+ "evaluation_id": evaluation_id,
+ },
"enabled": nbnotes > 0,
},
{
"title": "Placement étudiants",
- "url": "placement_eval_selectetuds?evaluation_id=" + evaluation_id,
+ "endpoint": "notes.placement_eval_selectetuds",
+ "args": {
+ "evaluation_id": evaluation_id,
+ },
"enabled": nbnotes == 0
and sco_saisie_notes.can_edit_notes(
context, REQUEST.AUTHENTICATED_USER, E["moduleimpl_id"]
@@ -122,13 +139,16 @@ def moduleimpl_evaluation_menu(context, evaluation_id, nbnotes=0, REQUEST=None):
},
{
"title": "Absences ce jour",
- "url": "Absences/EtatAbsencesDate?date=%s&group_ids=%s"
- % (urllib.quote(E["jour"], safe=""), group_id),
+ "endpoint": "absences.EtatAbsencesDate?date=%s&group_ids=%s"
+ % (endpointlib.quote(E["jour"], safe=""), group_id),
"enabled": E["jour"],
},
{
"title": "Vérifier notes vs absents",
- "url": "evaluation_check_absences_html?evaluation_id=%s" % (evaluation_id),
+ "endpoint": "notes.evaluation_check_absences_html",
+ "args": {
+ "evaluation_id": evaluation_id,
+ },
"enabled": nbnotes > 0 and E["jour"],
},
]
diff --git a/app/scodoc/sco_page_etud.py b/app/scodoc/sco_page_etud.py
index c39ca695b9..59dba81219 100644
--- a/app/scodoc/sco_page_etud.py
+++ b/app/scodoc/sco_page_etud.py
@@ -75,70 +75,61 @@ def _menuScolarite(context, authuser, sem, etudid):
if ins["etat"] != "D":
dem_title = "Démission"
- dem_url = "formDem?etudid=%(etudid)s&formsemestre_id=%(formsemestre_id)s" % args
+ dem_url = "formDem"
else:
dem_title = "Annuler la démission"
- dem_url = (
- "doCancelDem?etudid=%(etudid)s&formsemestre_id=%(formsemestre_id)s" % args
- )
+ dem_url = "doCancelDem"
# Note: seul un etudiant inscrit (I) peut devenir défaillant.
if ins["etat"] != sco_codes_parcours.DEF:
def_title = "Déclarer défaillance"
- def_url = "formDef?etudid=%(etudid)s&formsemestre_id=%(formsemestre_id)s" % args
+ def_url = "formDef"
elif ins["etat"] == sco_codes_parcours.DEF:
def_title = "Annuler la défaillance"
- def_url = (
- "doCancelDef?etudid=%(etudid)s&formsemestre_id=%(formsemestre_id)s" % args
- )
+ def_url = "doCancelDef"
def_enabled = (
(ins["etat"] != "D")
and authuser.has_permission(Permission.ScoEtudInscrit, context)
and not locked
)
items = [
- # { 'title' : 'Changer de groupe',
- # 'url' : 'formChangeGroup?etudid=%s&formsemestre_id=%s' % (etudid,ins['formsemestre_id']),
- # 'enabled' : authuser.has_permission(Permission.ScoEtudChangeGroups,context) and not locked,
- # },
{
"title": dem_title,
- "url": dem_url,
+ "endpoint": dem_url,
+ "args": args,
"enabled": authuser.has_permission(Permission.ScoEtudInscrit, context)
and not locked,
},
{
"title": "Validation du semestre (jury)",
- "url": "Notes/formsemestre_validation_etud_form?etudid=%(etudid)s&formsemestre_id=%(formsemestre_id)s"
- % args,
+ "endpoint": "notes.formsemestre_validation_etud_form",
+ "args": args,
"enabled": authuser.has_permission(Permission.ScoEtudInscrit, context)
and not locked,
},
- {"title": def_title, "url": def_url, "enabled": def_enabled},
+ {"title": def_title, "endpoint": def_url, "enabled": def_enabled},
{
"title": "Inscrire à un module optionnel (ou au sport)",
- "url": "Notes/formsemestre_inscription_option?formsemestre_id=%(formsemestre_id)s&etudid=%(etudid)s"
- % args,
+ "endpoint": "notes.formsemestre_inscription_option",
+ "args": args,
"enabled": authuser.has_permission(Permission.ScoEtudInscrit, context)
and not locked,
},
{
"title": "Désinscrire (en cas d'erreur)",
- "url": "Notes/formsemestre_desinscription?formsemestre_id=%(formsemestre_id)s&etudid=%(etudid)s"
- % args,
+ "endpoint": "notes.formsemestre_desinscription",
"enabled": authuser.has_permission(Permission.ScoEtudInscrit, context)
and not locked,
},
{
"title": "Inscrire à un autre semestre",
- "url": "Notes/formsemestre_inscription_with_modules_form?etudid=%(etudid)s"
- % args,
+ "endpoint": "notes.formsemestre_inscription_with_modules_form",
+ "args": {"etudid": etudid},
"enabled": authuser.has_permission(Permission.ScoEtudInscrit, context),
},
{
"title": "Enregistrer un semestre effectué ailleurs",
- "url": "Notes/formsemestre_ext_create_form?formsemestre_id=%(formsemestre_id)s&etudid=%(etudid)s"
- % args,
+ "endpoint": "notes.formsemestre_ext_create_form",
"enabled": authuser.has_permission(Permission.ScoImplement, context),
},
]
@@ -163,7 +154,7 @@ def ficheEtud(context, etudid=None, REQUEST=None):
raise ScoValueError("Etudiant inexistant !")
etud = etuds[0]
etudid = etud["etudid"]
- context.fillEtudsInfo([etud])
+ scolars.fillEtudsInfo(context, [etud])
#
info = etud
info["ScoURL"] = context.ScoURL()
@@ -510,35 +501,38 @@ def menus_etud(context, REQUEST=None):
menuEtud = [
{
"title": etud["nomprenom"],
- "url": "ficheEtud?etudid=%(etudid)s" % etud,
+ "endpoint": "scolar.ficheEtud",
+ "args": {"etudid": etud["etudid"]},
"enabled": True,
"helpmsg": "Fiche étudiant",
},
{
"title": "Changer la photo",
- "url": "formChangePhoto?etudid=%(etudid)s" % etud,
+ "endpoint": "scolar.formChangePhoto",
+ "args": {"etudid": etud["etudid"]},
"enabled": authuser.has_permission(Permission.ScoEtudChangeAdr, context),
},
{
"title": "Changer les données identité/admission",
- "url": "etudident_edit_form?etudid=%(etudid)s" % etud,
+ "endpoint": "scolar.etudident_edit_form",
+ "args": {"etudid": etud["etudid"]},
"enabled": authuser.has_permission(Permission.ScoEtudInscrit, context),
},
{
"title": "Supprimer cet étudiant...",
- "url": "etudident_delete?etudid=%(etudid)s" % etud,
+ "endpoint": "scolar.etudident_delete",
+ "args": {"etudid": etud["etudid"]},
"enabled": authuser.has_permission(Permission.ScoEtudInscrit, context),
},
{
"title": "Voir le journal...",
- "url": "showEtudLog?etudid=%(etudid)s" % etud,
+ "endpoint": "scolar.showEtudLog",
+ "args": {"etudid": etud["etudid"]},
"enabled": True,
},
]
- return htmlutils.make_menu(
- "Etudiant", menuEtud, base_url=context.absolute_url() + "/", alone=True
- )
+ return htmlutils.make_menu("Etudiant", menuEtud, alone=True)
def etud_info_html(context, etudid, with_photo="1", REQUEST=None, debug=False):
diff --git a/app/scodoc/sco_portal_apogee.py b/app/scodoc/sco_portal_apogee.py
index 996c966c7a..1b2f57c200 100644
--- a/app/scodoc/sco_portal_apogee.py
+++ b/app/scodoc/sco_portal_apogee.py
@@ -335,8 +335,8 @@ def get_etud_apogee(context, code_nip):
def get_default_etapes(context):
- """Liste par défaut: devrait etre lue d'un fichier de config"""
- filename = context.file_path + "/config/default-etapes.txt"
+ """Liste par défaut, lue du fichier de config"""
+ filename = SCO_TOOLS_DIR + "/default-etapes.txt"
log("get_default_etapes: reading %s" % filename)
f = open(filename)
etapes = {}
diff --git a/app/scodoc/sco_pvpdf.py b/app/scodoc/sco_pvpdf.py
index eb20a25880..515bc80f95 100644
--- a/app/scodoc/sco_pvpdf.py
+++ b/app/scodoc/sco_pvpdf.py
@@ -345,7 +345,7 @@ def pdf_lettres_individuelles(
return ""
# Ajoute infos sur etudiants
etuds = [x["identite"] for x in dpv["decisions"]]
- context.fillEtudsInfo(etuds)
+ scolars.fillEtudsInfo(context, etuds)
#
sem = sco_formsemestre.get_formsemestre(context, formsemestre_id)
prefs = sco_preferences.SemPreferences(context, formsemestre_id)
diff --git a/app/scodoc/sco_saisie_notes.py b/app/scodoc/sco_saisie_notes.py
index c3ceb6f77d..d2e513f99d 100644
--- a/app/scodoc/sco_saisie_notes.py
+++ b/app/scodoc/sco_saisie_notes.py
@@ -941,21 +941,23 @@ def saisie_notes(context, evaluation_id, group_ids=[], REQUEST=None):
{
"title": "Saisie par fichier tableur",
"id": "menu_saisie_tableur",
- "url": "/saisie_notes_tableur?evaluation_id=%s&%s"
- % (E["evaluation_id"], groups_infos.groups_query_args),
+ "endpoint": "notes.saisie_notes_tableur",
+ "args": {
+ "evaluation_id": E["evaluation_id"],
+ "group_ids": groups_infos.group_ids,
+ },
},
{
"title": "Voir toutes les notes du module",
- "url": "/evaluation_listenotes?moduleimpl_id=%s"
- % E["moduleimpl_id"],
+ "endpoint": "notes.evaluation_listenotes",
+ "args": {"moduleimpl_id": E["moduleimpl_id"]},
},
{
"title": "Effacer toutes les notes de cette évaluation",
- "url": "/evaluation_suppress_alln?evaluation_id=%s"
- % (E["evaluation_id"],),
+ "endpoint": "notes.evaluation_suppress_alln",
+ "args": {"evaluation_id": E["evaluation_id"]},
},
],
- base_url=context.absolute_url(),
alone=True,
)
)
diff --git a/app/scodoc/sco_trombino.py b/app/scodoc/sco_trombino.py
index d34c1f5ed5..c7619a6c82 100644
--- a/app/scodoc/sco_trombino.py
+++ b/app/scodoc/sco_trombino.py
@@ -104,16 +104,21 @@ def _trombino_html_header(context, REQUEST):
def trombino_html(context, groups_infos, REQUEST=None):
"HTML snippet for trombino (with title and menu)"
- args = groups_infos.groups_query_args
menuTrombi = [
- {"title": "Charger des photos...", "url": "photos_import_files_form?%s" % args},
+ {
+ "title": "Charger des photos...",
+ "endpoint": "scolar.photos_import_files_form",
+ "args": {"group_ids": groups_infos.group_ids},
+ },
{
"title": "Obtenir archive Zip des photos",
- "url": "trombino?%s&format=zip" % args,
+ "endpoint": "scolar.trombino",
+ "args": {"group_ids": groups_infos.group_ids, "format": "zip"},
},
{
"title": "Recopier les photos depuis le portail",
- "url": "trombino_copy_photos?%s" % args,
+ "endpoint": "scolar.trombino_copy_photos",
+ "args": {"group_ids": groups_infos.group_ids},
},
]
diff --git a/app/scodoc/sco_up_to_date.py b/app/scodoc/sco_up_to_date.py
index df31f7febe..5175960fd6 100644
--- a/app/scodoc/sco_up_to_date.py
+++ b/app/scodoc/sco_up_to_date.py
@@ -81,7 +81,7 @@ def is_up_to_date(context):
# return _UP_TO_DATE, _UP_TO_DATE_MSG
# last_stable_ver = get_last_stable_version()
- # cur_ver = scu.get_svn_version(context.file_path) # in sco_utils
+ # cur_ver = scu.get_svn_version(scu.SCO_SRC_DIR) # in sco_utils
# cur_ver2 = cur_ver
# cur_ver_num = -1
# # Convert versions to integers:
diff --git a/app/scodoc/sco_zope.py b/app/scodoc/sco_zope.py
index 2e83e83e5f..b780de44c7 100644
--- a/app/scodoc/sco_zope.py
+++ b/app/scodoc/sco_zope.py
@@ -47,8 +47,6 @@ from Globals import Persistent
from Globals import INSTANCE_HOME
from Acquisition import Implicit
-# where we exist on the file system
-file_path = Globals.package_home(globals())
# Collect all security declarations (Zope2Flask)
diff --git a/app/scodoc/scolars.py b/app/scodoc/scolars.py
index 84b0231ac9..9770f282d2 100644
--- a/app/scodoc/scolars.py
+++ b/app/scodoc/scolars.py
@@ -29,7 +29,7 @@
"""
import time
-import mail
+import mails
import sco_utils as scu
from sco_utils import SCO_ENCODING
from sco_exceptions import ScoGenError, ScoValueError
@@ -709,7 +709,7 @@ def create_etud(context, cnx, args={}, REQUEST=None):
msg="creation initiale",
)
etud = etudident_list(cnx, {"etudid": etudid})[0]
- context.fillEtudsInfo([etud])
+ fillEtudsInfo(context, [etud])
etud["url"] = "ficheEtud?etudid=%(etudid)s" % etud
sco_news.add(
context,
diff --git a/app/views/notes.py b/app/views/notes.py
index 767d8fac82..765b1fb469 100644
--- a/app/views/notes.py
+++ b/app/views/notes.py
@@ -264,11 +264,6 @@ sco_publish(
sco_formsemestre_status.formsemestre_description,
Permission.ScoView,
)
-sco_publish(
- "/formsemestre_lists",
- sco_formsemestre_status.formsemestre_lists,
- Permission.ScoView,
-)
sco_publish(
"/formsemestre_status_menubar",
sco_formsemestre_status.formsemestre_status_menubar,
@@ -1178,12 +1173,6 @@ def formsemestre_custommenu_edit(context, REQUEST, formsemestre_id):
)
-sco_publish(
- "/formsemestre_custommenu_html",
- sco_formsemestre_custommenu.formsemestre_custommenu_html,
- Permission.ScoView,
-)
-
# --- dialogue modif enseignants/moduleimpl
@bp.route("/edit_enseignants_form")
@permission_required(Permission.ScoView)
@@ -2624,6 +2613,7 @@ def formsemestre_bulletins_mailetuds_choice(
)
+# not published
def formsemestre_bulletins_choice(
context, REQUEST, formsemestre_id, title="", explanation="", choose_mail=False
):
diff --git a/app/views/scolar.py b/app/views/scolar.py
index 4e4ed8ae66..276a5312d0 100644
--- a/app/views/scolar.py
+++ b/app/views/scolar.py
@@ -387,7 +387,7 @@ def etud_info(context, etudid=None, format="xml", REQUEST=None):
)
d = {}
etud = etuds[0]
- context.fillEtudsInfo([etud])
+ scolars.fillEtudsInfo(context, [etud])
etud["date_naissance_iso"] = ndb.DateDMYtoISO(etud["date_naissance"])
for a in (
"etudid",
@@ -1460,7 +1460,7 @@ def _etudident_create_or_edit_form(context, REQUEST, edit):
# modif d'un etudiant
scolars.etudident_edit(cnx, tf[2], context=context, REQUEST=REQUEST)
etud = scolars.etudident_list(cnx, {"etudid": etudid})[0]
- context.fillEtudsInfo([etud])
+ scolars.fillEtudsInfo(context, [etud])
# Inval semesters with this student:
to_inval = [s["formsemestre_id"] for s in etud["sems"]]
if to_inval:
@@ -1482,7 +1482,7 @@ def etudident_delete(context, etudid, dialog_confirmed=False, REQUEST=None):
raise ScoValueError("Etudiant inexistant !")
else:
etud = etuds[0]
- context.fillEtudsInfo([etud])
+ scolars.fillEtudsInfo(context, [etud])
if not dialog_confirmed:
return scu.confirm_dialog(
context,
diff --git a/config.py b/config.py
index 7a9cf90e63..1311f1e4d6 100755
--- a/config.py
+++ b/config.py
@@ -35,6 +35,8 @@ class ConfigClass(object):
SCODOC7_SQL_USER = os.environ.get("SCODOC7_SQL_USER", "www-data")
DEFAULT_SQL_PORT = os.environ.get("DEFAULT_SQL_PORT", "5432")
+ SERVER_NAME = os.environ.get("SERVER_NAME")
+
def __init__(self):
"""Used to build some config variable at startup time"""
self.SCODOC_VAR_DIR = os.path.join(self.INSTANCE_HOME, "var", "scodoc")
diff --git a/scodoc.py b/scodoc.py
index 471c96b9db..7d757ddd9d 100755
--- a/scodoc.py
+++ b/scodoc.py
@@ -17,6 +17,7 @@ import flask
from app import create_app, cli, db
from app.auth.models import User, Role, UserRole
+from app.views import notes, scolar, absences
from config import Config
@@ -32,6 +33,8 @@ def make_shell_context():
"User": User,
"Role": Role,
"UserRole": UserRole,
+ "notes": notes,
+ "scolar": scolar,
"pp": pp,
"flask": flask,
"current_app": flask.current_app,