diff --git a/app/but/jury_but_view.py b/app/but/jury_but_view.py index ac454195eb010c5047eb0424ec849df005b9e851..a58f41e2c02ab4967d6e3e5805da2d6a9e054eb0 100644 --- a/app/but/jury_but_view.py +++ b/app/but/jury_but_view.py @@ -11,7 +11,7 @@ import re import numpy as np import flask -from flask import flash, url_for +from flask import flash, render_template, url_for from flask import g, request from app import db @@ -32,8 +32,10 @@ from app.models import ( ScolarAutorisationInscription, ScolarFormSemestreValidation, ) +from app.models.config import ScoDocSiteConfig from app.scodoc import html_sco_header from app.scodoc.sco_exceptions import ScoValueError +from app.scodoc import sco_preferences from app.scodoc import sco_utils as scu @@ -463,8 +465,10 @@ def jury_but_semestriel( if read_only: H.append( - """<div class="but_explanation"> - Vous n'avez pas la permission de modifier ces décisions. + f"""<div class="but_explanation"> + {"Vous n'avez pas la permission de modifier ces décisions." + if formsemestre.etat + else "Semestre verrouillé."} Les champs entourés en vert sont enregistrés. </div> """ @@ -491,7 +495,19 @@ def jury_but_semestriel( </div> """ ) - H.append(navigation_div) + + H.append(navigation_div) + H.append("</div>") + H.append( + render_template( + "but/documentation_codes_jury.html", + nom_univ=f"""Export {sco_preferences.get_preference("InstituteName") + or sco_preferences.get_preference("UnivName") + or "Apogée"}""", + codes=ScoDocSiteConfig.get_codes_apo_dict(), + ) + ) + return "\n".join(H) diff --git a/app/comp/res_common.py b/app/comp/res_common.py index 7632ec28b2ae386bdeee4ec5bfbfc5fd8acffb41..35f2a637eb7802651c6997619c63c643d640d524 100644 --- a/app/comp/res_common.py +++ b/app/comp/res_common.py @@ -733,7 +733,8 @@ class ResultatsSemestre(ResultatsCache): f"""<a href="{url_for('notes.formsemestre_validation_etud_form', scodoc_dept=g.scodoc_dept, formsemestre_id=self.formsemestre.id, etudid=etudid ) - }">{"saisir" if not jury_code_sem else "modifier"} décision</a>""", + }">{("saisir" if not jury_code_sem else "modifier") + if self.formsemestre.etat else "voir"} décisions</a>""", "col_jury_link", idx, ) diff --git a/app/scodoc/sco_formsemestre_validation.py b/app/scodoc/sco_formsemestre_validation.py index 25b47df3f42cdbd80284fff396f50f86e841b59a..3d2a7835a66ef0a2f9af5005bdb41d8e9244e6af 100644 --- a/app/scodoc/sco_formsemestre_validation.py +++ b/app/scodoc/sco_formsemestre_validation.py @@ -602,9 +602,21 @@ def formsemestre_recap_parcours_table( <td class="datedebut">{sem['mois_debut']}</td> <td class="rcp_titre_sem"><a class="formsemestre_status_link" href="{a_url}formsemestre_bulletinetud?formsemestre_id={formsemestre.id}&etudid={etudid}" - title="Bulletin de notes">{formsemestre.titre_annee()}{parcours_name}</a></td> + title="Bulletin de notes">{formsemestre.titre_annee()}{parcours_name}</a> """ ) + if nt.is_apc: + H.append( + f"""<a class="stdlink jury_link" title="Validations du semestre BUT" + href="{ url_for("notes.formsemestre_validation_but", + scodoc_dept=g.scodoc_dept, + formsemestre_id=formsemestre.id, + etudid=etudid, + ) + }">jury</a>""" + ) + H.append("""</td>""") + if nt.is_apc: H.append('<td class="rcp_but">BUT</td>') elif decision_sem: diff --git a/app/static/css/scodoc.css b/app/static/css/scodoc.css index e66360983c70b1557e5d5992637acb932df9e7d3..42c2ecac1626e9035548a04f952642767643e573 100644 --- a/app/static/css/scodoc.css +++ b/app/static/css/scodoc.css @@ -1661,6 +1661,11 @@ td.formsemestre_status_inscrits { text-align: center; } +td.rcp_titre_sem a.jury_link { + margin-left: 8px; + color: red; +} + td.formsemestre_status_cell { white-space: nowrap; } diff --git a/app/static/js/jury_but.js b/app/static/js/jury_but.js index 909a76d9536093aefa4b947d4edb44be8845bbb0..c53b223adb9102af235014a4b1541fd41c186ea5 100644 --- a/app/static/js/jury_but.js +++ b/app/static/js/jury_but.js @@ -78,7 +78,10 @@ $(function () { } else { document.querySelector("div.next").innerHTML = ""; } - + } else { + // Supprime les liens de navigation + document.querySelector("div.prev").innerHTML = ""; + document.querySelector("div.next").innerHTML = ""; } }); diff --git a/app/templates/but/documentation_codes_jury.html b/app/templates/but/documentation_codes_jury.html index cc4c7e179a37fb5da98207651a273d0fe301281b..f54807f2a032dbb967a1428f006dd221d35032c5 100644 --- a/app/templates/but/documentation_codes_jury.html +++ b/app/templates/but/documentation_codes_jury.html @@ -262,10 +262,11 @@ <b>Textes de référence:</b> <ul> <li><a href="https://www.enseignementsup-recherche.gouv.fr/fr/bo/21/Special4/ESRS2114777A.htm">Bulletin - officiel spécial n°4 du 17 juin 2021</a></li> + officiel spécial n°4 du 26 mai 2022 </a></li> <li><a - href="https://cache.media.enseignementsup-recherche.gouv.fr//file/SPE4-MESRI-17-6-2021/19/4/SP4_ESR_17_6_2021_1413194.pdf">Version - pdf complète</a></li> + href="https://cache.media.education.gouv.fr/file/SP4-MESRI-26-5-2022/10/0/spe617_annexe1_1426100.pdf">Version + pdf de l'arrêté de mai 2022 sur la licence professionnelle « bachelor universitaire de technologie + »</a></li> </ul> </div> diff --git a/app/views/notes.py b/app/views/notes.py index ce4b1472518b458f76947a9725df87bdbb202900..969233d0363976b34744f9184e1c2de6939974b8 100644 --- a/app/views/notes.py +++ b/app/views/notes.py @@ -2508,15 +2508,20 @@ def formsemestre_validation_but( </div> """ if autorisations_idx - else """<div class="but_autorisations_passage but_explanation">pas d'autorisations de passage enregistrées.</div>""" + else """<div class="but_autorisations_passage but_explanation"> + pas d'autorisations de passage enregistrées. + </div> + """ ) H.append(div_autorisations_passage) if read_only: H.append( - """ + f""" <div class="but_explanation"> - Vous n'avez pas la permission de modifier ces décisions. + {"Vous n'avez pas la permission de modifier ces décisions." + if formsemestre.etat + else "Semestre verrouillé."} Les champs entourés en vert sont enregistrés. </div>""" )