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