From ea7ef4f1a52d709851148cd5ecfa7d6e4351602b Mon Sep 17 00:00:00 2001
From: ilona <ilona@scodoc.org>
Date: Mon, 2 Sep 2024 07:34:04 +0200
Subject: [PATCH] =?UTF-8?q?Am=C3=A9liore=20l=C3=A8g=C3=A8rement=20pr=C3=A9?=
=?UTF-8?q?sentation=20page=20edition=20formation.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 2 +-
app/__init__.py | 4 +-
app/scodoc/sco_edit_ue.py | 77 ++++++++++++++++++++++---------------
app/static/css/ue_table.css | 4 ++
tools/debian/control | 2 +-
5 files changed, 52 insertions(+), 37 deletions(-)
diff --git a/.gitignore b/.gitignore
index 22d1be8bc..ec245bea3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -175,7 +175,7 @@ Thumbs.db
copy
# Symlinks static ScoDoc
-app/static/links/[0-9]*.*[0-9]
+app/static/links/[0-9]*.*
# Essais locaux
xp/
diff --git a/app/__init__.py b/app/__init__.py
index aab9ef3f5..b3944de7c 100755
--- a/app/__init__.py
+++ b/app/__init__.py
@@ -255,7 +255,7 @@ class ScoSMTPHandler(SMTPHandler):
return subject
-class ReverseProxied(object):
+class ReverseProxied:
"""Adaptateur wsgi qui nous permet d'avoir toutes les URL calculées en https
sauf quand on est en dev.
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):
"""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}")
subject = f"CRITICAL ERROR: {msg}".strip()[:68]
send_scodoc_alarm(subject, msg)
diff --git a/app/scodoc/sco_edit_ue.py b/app/scodoc/sco_edit_ue.py
index 48e1c90ac..40989539e 100644
--- a/app/scodoc/sco_edit_ue.py
+++ b/app/scodoc/sco_edit_ue.py
@@ -958,7 +958,10 @@ du programme" (menu "Semestre") si vous avez un semestre en cours);
</div>
"""
)
- H.append("<p><ul>")
+ H.append(
+ """<div class="scobox formation-actions">
+ <ul>"""
+ )
if has_perm_change:
H.append(
f"""
@@ -971,7 +974,7 @@ du programme" (menu "Semestre") si vous avez un semestre en cours);
"""
)
- if not len(formsemestres):
+ if formsemestres:
H.append(
f"""
<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)
</li>
</ul>
- </p>"""
+ </div>
+ """
)
- if has_perm_change:
- H.append(
+ if has_perm_change or current_user.has_permission(Permission.EditFormSemestre):
+ 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""" <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(
- 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>"""
- )
- # <li>(debug) <a class="stdlink" href="check_form_integrity?formation_id=%(formation_id)s">Vérifier cohérence</a></li>
+ H.append("<ul>")
+ for formsemestre in formsemestres:
+ H.append(f"""<li>{formsemestre.html_link_status()}""")
+ if not formsemestre.etat:
+ H.append(" [verrouillé]")
+ else:
+ H.append(
+ f""" <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(
+ 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)
H.append(warn)
@@ -1128,7 +1139,9 @@ def _ue_table_ues(
scodoc_dept=g.scodoc_dept,
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']}"
data-placeholder="{scu.APO_MISSING_CODE_STR}">{
ue["code_apogee"] or ""
diff --git a/app/static/css/ue_table.css b/app/static/css/ue_table.css
index 54679babe..00dfa0f99 100644
--- a/app/static/css/ue_table.css
+++ b/app/static/css/ue_table.css
@@ -214,4 +214,8 @@ span.formation_module_ue {
span.notes_module_list_buts {
margin-right: 5px;
+}
+
+div.formation-actions li {
+ margin-top: 12px;
}
\ No newline at end of file
diff --git a/tools/debian/control b/tools/debian/control
index b3e8cceec..81aa4a70a 100644
--- a/tools/debian/control
+++ b/tools/debian/control
@@ -4,5 +4,5 @@ Architecture: amd64
Maintainer: Emmanuel Viennet <emmanuel@viennet.net>
Description: ScoDoc 9
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
--
GitLab