diff --git a/app/scodoc/sco_formsemestre_status.py b/app/scodoc/sco_formsemestre_status.py index 0fe380fa1..e8ae30a99 100644 --- a/app/scodoc/sco_formsemestre_status.py +++ b/app/scodoc/sco_formsemestre_status.py @@ -1014,24 +1014,24 @@ def formsemestre_status_head(formsemestre_id=None, page_title=None): % evals["last_modif"].strftime("%d/%m/%Y à %Hh%M") ) H.append("") - if evals["attente"]: - H.append( - """ -Il y a des notes en attente ! Le classement des étudiants n'a qu'une valeur indicative. -""" - ) H.append("") - sem_warning = "" - if sem.bul_hide_xml: - sem_warning += "Bulletins non publiés sur le portail. " - if sem.block_moyennes: - sem_warning += "Calcul des moyennes bloqué !" - if sem_warning: - H.append('

' + sem_warning + "

") - if sem.semestre_id >= 0 and not sem.est_sur_une_annee(): - H.append( - '

Attention: ce semestre couvre plusieurs années scolaires !

' + warnings = [] + if evals["attente"]: + warnings.append( + """Il y a des notes en attente ! + Le classement des étudiants n'a qu'une valeur indicative.""" ) + if sem.bul_hide_xml: + warnings.append("""Bulletins non publiés sur le portail. """) + if sem.block_moyennes: + warnings.append("Calcul des moyennes bloqué !") + if sem.semestre_id >= 0 and not sem.est_sur_une_annee(): + warnings.append("""Ce semestre couvre plusieurs années scolaires !""") + if warnings: + H += [ + f"""
{warning}
""" + for warning in warnings + ] return "".join(H) @@ -1058,6 +1058,9 @@ def formsemestre_status(formsemestre_id=None): ) can_edit = formsemestre.can_be_edited_by(current_user) + can_change_all_notes = current_user.has_permission(Permission.ScoEditAllNotes) or ( + current_user.id in [resp.id for resp in formsemestre.responsables] + ) use_ue_coefs = sco_preferences.get_preference("use_ue_coefs", formsemestre_id) H = [ @@ -1068,7 +1071,9 @@ def formsemestre_status(formsemestre_id=None): formsemestre_status_head( formsemestre_id=formsemestre_id, page_title="Tableau de bord" ), - formsemestre_warning_etuds_sans_note(formsemestre, nt), + formsemestre_warning_etuds_sans_note(formsemestre, nt) + if can_change_all_notes + else "", """

Tableau de bord: cliquez sur un module pour saisir des notes

""", @@ -1338,7 +1343,7 @@ def formsemestre_tableau_modules( def get_formsemestre_etudids_sans_notes( formsemestre: FormSemestre, res: ResultatsSemestre ) -> set[int]: - """Les étudis d'étudiants de ce semestre n'ayant aucune note + """Les étudids d'étudiants de ce semestre n'ayant aucune note alors que d'autres en ont. """ # Il y a-t-il des notes déjà saisies ? @@ -1398,7 +1403,7 @@ def formsemestre_warning_etuds_sans_note( else: msg_etuds = f"""{nb_sans_notes} étudiants n'ont aucune note :""" - return f"""
Attention: {msg_etuds} + return f"""
{msg_etuds} aucun étudiant sans notes""" + else: + flash( + f"""{Identite.query.get_or_404(etudid).nomprenom} + a déjà des notes""" + ) + return redirect( + url_for("scolar.ficheEtud", scodoc_dept=g.scodoc_dept, etudid=etudid) + ) + else: + noms = "
  • ".join( + [ + f"""{etud.nomprenom}""" - for etud in etuds - ] - ) + for etud in etuds + ] + ) + message = f""" +

    Étudiants sans notes:

    +
      +
    • {noms}
    • +
    + """ + return f""" {html_sco_header.sco_header( page_title=f"{formsemestre.sem_modalite()} {formsemestre.titre_annee()}" @@ -1451,14 +1481,14 @@ def formsemestre_note_etuds_sans_notes(formsemestre_id: int, code: str = None): formsemestre_id=formsemestre_id, page_title="Étudiants sans notes" )}
  • -

    Étudiants sans notes:

    - + {message}
    - Mettre toutes les notes de ces étudiants à : + + + Mettre toutes les notes de {"ces étudiants" if len(etuds)> 1 else "cet étudiant"} + à :