1
0
forked from ScoDoc/ScoDoc
This commit is contained in:
Emmanuel Viennet 2024-09-02 10:36:01 +02:00
commit 5336913ba5
7 changed files with 56 additions and 39 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

@ -1697,6 +1697,7 @@ h2.formsemestre,
width: 100%; width: 100%;
padding-top: 5px; padding-top: 5px;
padding-bottom: 10px; padding-bottom: 10px;
margin-left: 4px;
} }
.formsemestre_page_title table.semtitle td.infos table { .formsemestre_page_title table.semtitle td.infos table {

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

@ -103,7 +103,7 @@
border: none; border: none;
text-transform: none; text-transform: none;
font-weight: normal; font-weight: normal;
font-size: 12px; font-size: 1rem;
padding: 4px 8px; padding: 4px 8px;
border-radius: 4px; border-radius: 4px;
@ -186,6 +186,7 @@
.sco-formsemestre-menu{ .sco-formsemestre-menu{
margin-top: 4px; margin-top: 4px;
margin-right: 16px;
} }
} }
@ -340,7 +341,7 @@
} }
.sco-formsemestre-menu .dropdown-content .sco-formsemestre-menu-item { .sco-formsemestre-menu .dropdown-content .sco-formsemestre-menu-item {
padding: 0.25rem 0.5rem; padding: 0.25rem 0.1rem;
list-style: none; list-style: none;
width: 100%; width: 100%;
display: block; display: block;

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