1
0
forked from ScoDoc/ScoDoc

Améliore lègèrement présentation page edition formation.

This commit is contained in:
ilona 2024-09-02 07:34:04 +02:00
parent aed7b48fac
commit ea7ef4f1a5
5 changed files with 52 additions and 37 deletions

2
.gitignore vendored
View File

@ -175,7 +175,7 @@ Thumbs.db
copy copy
# Symlinks static ScoDoc # Symlinks static ScoDoc
app/static/links/[0-9]*.*[0-9] app/static/links/[0-9]*.*
# Essais locaux # Essais locaux
xp/ xp/

View File

@ -255,7 +255,7 @@ class ScoSMTPHandler(SMTPHandler):
return subject return subject
class ReverseProxied(object): class ReverseProxied:
"""Adaptateur wsgi qui nous permet d'avoir toutes les URL calculées en https """Adaptateur wsgi qui nous permet d'avoir toutes les URL calculées en https
sauf quand on est en dev. sauf quand on est en dev.
La variable HTTP_X_FORWARDED_PROTO est positionnée par notre config nginx""" La variable HTTP_X_FORWARDED_PROTO est positionnée par notre config nginx"""
@ -649,8 +649,6 @@ def scodoc_flash_status_messages():
def critical_error(msg): def critical_error(msg):
"""Handle a critical error: flush all caches, display message to the user""" """Handle a critical error: flush all caches, display message to the user"""
import app.scodoc.sco_utils as scu
log(f"\n*** CRITICAL ERROR: {msg}") log(f"\n*** CRITICAL ERROR: {msg}")
subject = f"CRITICAL ERROR: {msg}".strip()[:68] subject = f"CRITICAL ERROR: {msg}".strip()[:68]
send_scodoc_alarm(subject, msg) send_scodoc_alarm(subject, msg)

View File

@ -958,7 +958,10 @@ du programme" (menu "Semestre") si vous avez un semestre en cours);
</div> </div>
""" """
) )
H.append("<p><ul>") H.append(
"""<div class="scobox formation-actions">
<ul>"""
)
if has_perm_change: if has_perm_change:
H.append( H.append(
f""" f"""
@ -971,7 +974,7 @@ du programme" (menu "Semestre") si vous avez un semestre en cours);
""" """
) )
if not len(formsemestres): if formsemestres:
H.append( H.append(
f""" f"""
<li><a class="stdlink" href="{ <li><a class="stdlink" href="{
@ -1019,38 +1022,46 @@ du programme" (menu "Semestre") si vous avez un semestre en cours);
}">Liste détaillée des modules de la formation</a> (debug) }">Liste détaillée des modules de la formation</a> (debug)
</li> </li>
</ul> </ul>
</p>""" </div>
"""
) )
if has_perm_change: if has_perm_change or current_user.has_permission(Permission.EditFormSemestre):
H.append( H.append("""<div class="scobox">""")
if has_perm_change and len(formsemestres):
H.append(
"""
<div class="scobox-title">
<a name="sems">Semestres ou sessions de cette formation</a>
</div>
""" """
<h3> <a name="sems">Semestres ou sessions de cette formation</a></h3> )
<p><ul>"""
)
for formsemestre in formsemestres:
H.append(f"""<li>{formsemestre.html_link_status()}""")
if not formsemestre.etat:
H.append(" [verrouillé]")
else:
H.append(
f""" &nbsp;<a class="stdlink" href="{url_for("notes.formsemestre_editwithmodules",
scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre.id
)}">Modifier</a>"""
)
H.append("</li>")
H.append("</ul>")
if current_user.has_permission(Permission.EditFormSemestre): H.append("<ul>")
H.append( for formsemestre in formsemestres:
f"""<ul> H.append(f"""<li>{formsemestre.html_link_status()}""")
<li><b><a class="stdlink" href="{ if not formsemestre.etat:
url_for('notes.formsemestre_createwithmodules', scodoc_dept=g.scodoc_dept, H.append(" [verrouillé]")
formation_id=formation_id, semestre_id=1) else:
}">Mettre en place un nouveau semestre de formation {formation.acronyme}</a></b> H.append(
</li> f""" &nbsp;<a class="stdlink"
</ul>""" href="{url_for("notes.formsemestre_editwithmodules",
) scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre.id
# <li>(debug) <a class="stdlink" href="check_form_integrity?formation_id=%(formation_id)s">Vérifier cohérence</a></li> )}">Modifier</a>"""
)
H.append("</li>")
H.append("</ul>")
if current_user.has_permission(Permission.EditFormSemestre):
H.append(
f"""<ul>
<li><b><a class="stdlink" href="{
url_for('notes.formsemestre_createwithmodules', scodoc_dept=g.scodoc_dept,
formation_id=formation_id, semestre_id=1)
}">Mettre en place un nouveau semestre de formation {formation.acronyme}</a></b>
</li>
</ul>"""
)
H.append("</div>")
warn, _ = sco_formsemestre_validation.check_formation_ues(formation) warn, _ = sco_formsemestre_validation.check_formation_ues(formation)
H.append(warn) H.append(warn)
@ -1128,7 +1139,9 @@ def _ue_table_ues(
scodoc_dept=g.scodoc_dept, scodoc_dept=g.scodoc_dept,
ue_id=ue["ue_id"], ue_id=ue["ue_id"],
) )
ue["code_apogee_str"] = f""", Apo: <span ue[
"code_apogee_str"
] = f""", Apo: <span
class="{klass}" data-url="{edit_url}" id="{ue['ue_id']}" class="{klass}" data-url="{edit_url}" id="{ue['ue_id']}"
data-placeholder="{scu.APO_MISSING_CODE_STR}">{ data-placeholder="{scu.APO_MISSING_CODE_STR}">{
ue["code_apogee"] or "" ue["code_apogee"] or ""

View File

@ -214,4 +214,8 @@ span.formation_module_ue {
span.notes_module_list_buts { span.notes_module_list_buts {
margin-right: 5px; margin-right: 5px;
}
div.formation-actions li {
margin-top: 12px;
} }

View File

@ -4,5 +4,5 @@ Architecture: amd64
Maintainer: Emmanuel Viennet <emmanuel@viennet.net> Maintainer: Emmanuel Viennet <emmanuel@viennet.net>
Description: ScoDoc 9 Description: ScoDoc 9
Un logiciel pour le suivi de la scolarité universitaire. Un logiciel pour le suivi de la scolarité universitaire.
Depends: adduser, curl, gcc, graphviz, graphviz-dev, libpq-dev, postfix|exim4, cracklib-runtime, libcrack2-dev, libpango-1.0-0, pango1.0-tools, python3-dev, python3-venv, python3-pip, python3-wheel, nginx, postgresql, libpq-dev, redis Depends: adduser, curl, gcc, graphviz, graphviz-dev, postfix|exim4, cracklib-runtime, libcrack2-dev, libpango-1.0-0, pango1.0-tools, python3-dev, python3-venv, python3-pip, python3-wheel, nginx, postgresql, libpq-dev, redis
Recommends: ufw Recommends: ufw