diff --git a/app/formations/edit_ue.py b/app/formations/edit_ue.py index eb37a6172..2caadab08 100644 --- a/app/formations/edit_ue.py +++ b/app/formations/edit_ue.py @@ -617,7 +617,7 @@ def ue_delete(ue_id=None, delete_validations=False, dialog_confirmed=False): def ue_table(formation_id=None, semestre_idx=1, msg=""): - """Page affiochage ou édition d'une formation + """Page affichage ou édition d'une formation avec UEs, matières et module, et liens pour éditer si non verrouillée et permission. """ @@ -690,7 +690,13 @@ def ue_table(formation_id=None, semestre_idx=1, msg=""): current_user.has_permission(Permission.EditFormationTags) or has_perm_change ) if locked: - lockicon = scu.icontag("lock32_img", title="verrouillé") + lockicon = scu.icontag( + "lock_25", + file_format="svg", + border="0", + height="20px", + title="Semestre verrouillé", + ) else: lockicon = "" diff --git a/app/formations/formation_io.py b/app/formations/formation_io.py index 5f3b1e1b8..915400824 100644 --- a/app/formations/formation_io.py +++ b/app/formations/formation_io.py @@ -483,7 +483,11 @@ def formation_list_table(detail: bool) -> GenTable: formations: list[Formation] = Formation.query.filter_by(dept_id=g.scodoc_dept_id) title = "Formations (programmes pédagogiques)" lockicon = scu.icontag( - "lock32_img", title="Comporte des semestres verrouillés", border="0" + "lock_25", + file_format="svg", + border="0", + height="20px", + title="Comporte des semestres verrouillés", ) suppricon = scu.icontag( "delete_small_img", border="0", alt="supprimer", title="Supprimer" diff --git a/app/scodoc/sco_dept.py b/app/scodoc/sco_dept.py index e81bf450f..88f355d25 100644 --- a/app/scodoc/sco_dept.py +++ b/app/scodoc/sco_dept.py @@ -120,11 +120,21 @@ def _convert_formsemestres_to_dicts( emptygroupicon = scu.icontag( "emptygroupicon_img", title="Pas d'inscrits", border="0" ) - lockicon = scu.icontag("lock32_img", title="verrouillé", border="0") + lockicon = scu.icontag( + "lock_25", file_format="svg", border="0", height="20px", title="verrouillé" + ) + openlockicon = scu.icontag( + "lock_25_open", + file_format="svg", + border="0", + height="20px", + title="verrouillé", + ) else: groupicon = "X" emptygroupicon = "" lockicon = "X" + openlockicon = "" # génère liste de dict sems = [] formsemestre: FormSemestre @@ -149,7 +159,7 @@ def _convert_formsemestres_to_dicts( ), "formsemestre_id": formsemestre.id, "groupicon": groupicon if nb_inscrits > 0 else emptygroupicon, - "lockimg": "" if formsemestre.etat else lockicon, + "lockimg": openlockicon if formsemestre.etat else lockicon, "modalite": formsemestre.modalite, "mois_debut": formsemestre.mois_debut(), "mois_fin": formsemestre.mois_fin(), @@ -159,6 +169,7 @@ def _convert_formsemestres_to_dicts( "session_id": formsemestre.session_id(), "titre_num": formsemestre.titre_num(), "tmpcode": (f"{formsemestre.id}" if showcodes else ""), + "_tr_attrs": f"data-formsemestre_id={formsemestre.id}", } sems.append(sem) return sems diff --git a/app/scodoc/sco_excel.py b/app/scodoc/sco_excel.py index c9da73362..a0c25c158 100644 --- a/app/scodoc/sco_excel.py +++ b/app/scodoc/sco_excel.py @@ -573,7 +573,7 @@ def _open_workbook(filelike, dump_debug=False) -> Workbook: log("Excel_to_list: failure to import document") if dump_debug: dump_filename = "/tmp/last_scodoc_import_failure" + scu.XLSX_SUFFIX - log(f"Dumping problemetic file on {dump_filename}") + log(f"Dumping problematic file on {dump_filename}") with open(dump_filename, "wb") as f: f.write(filelike) raise ScoValueError( diff --git a/app/scodoc/sco_formsemestre_validation.py b/app/scodoc/sco_formsemestre_validation.py index 093fc168c..2c75c41e2 100644 --- a/app/scodoc/sco_formsemestre_validation.py +++ b/app/scodoc/sco_formsemestre_validation.py @@ -742,7 +742,13 @@ def formsemestre_recap_parcours_table( else: default_sem_info = "" if not formsemestre.etat: # locked - lockicon = scu.icontag("lock32_img", title="verrouillé", border="0") + lockicon = scu.icontag( + "lock_25", + file_format="svg", + border="0", + height="20px", + title="verrouillé", + ) default_sem_info += lockicon if ( formsemestre.formation.formation_code diff --git a/app/scodoc/sco_moduleimpl_status.py b/app/scodoc/sco_moduleimpl_status.py index 661c0b3f2..a89fd4536 100644 --- a/app/scodoc/sco_moduleimpl_status.py +++ b/app/scodoc/sco_moduleimpl_status.py @@ -308,11 +308,19 @@ def moduleimpl_status(moduleimpl_id=None, partition_id=None): # 2ieme ligne: Semestre, Coef H.append("""""") if formsemestre.semestre_id >= 0: - H.append(f"""Semestre: {formsemestre.semestre_id}""") + H.append(f"""Semestre: {formsemestre.semestre_id} """) else: H.append("""""") if sem_locked: - H.append(scu.icontag("lock32_img", title="verrouillé")) + H.append( + scu.icontag( + "lock_25", + file_format="svg", + border="0", + height="20px", + title="verrouillé", + ) + ) H.append("""""") if modimpl.module.is_apc(): H.append(_ue_coefs_html(modimpl)) @@ -534,7 +542,11 @@ def moduleimpl_status(moduleimpl_id=None, partition_id=None): # H.append("""""") if sem_locked: - H.append(f"""{scu.icontag("lock32_img")} semestre verrouillé""") + H.append( + f"""{scu.icontag( + "lock_25", file_format="svg", border="0", height="20px", title="verrouillé" + )} semestre verrouillé""" + ) elif can_edit_evals: H.append( f"""
{bot_table_links}
""" @@ -732,6 +744,7 @@ def _ligne_evaluation( etat_descr = "il manque des notes" else: etat_txt = "" + etat_descr = "" if etat_txt: if can_edit_evals: etat_txt = f"""' + help_msg + "

") if add_headers: return render_template(template, content="\n".join(H)) - else: - return "\n".join(H) + return "\n".join(H) def objects_renumber(db, obj_list) -> None: diff --git a/app/static/icons/lock_25.svg b/app/static/icons/lock_25.svg index 1fe0f5fc3..8b4248adc 100644 --- a/app/static/icons/lock_25.svg +++ b/app/static/icons/lock_25.svg @@ -38,12 +38,12 @@ x="248.80879" y="264.35934" /> Formation {{formation.titre}} ({{formation.acronyme}}) [version {{formation.version}}] code {{formation.formation_code}} {% if read_only %} - {{scu.icontag("lock32_img", title="verrouillé")|safe}} + {{scu.icontag( + "lock_25", file_format="svg", border="0", height="20px", title="verrouillé" + )|safe}} {% endif %} diff --git a/app/templates/scolar/index.j2 b/app/templates/scolar/index.j2 index 7038bd839..e2850bffd 100644 --- a/app/templates/scolar/index.j2 +++ b/app/templates/scolar/index.j2 @@ -16,6 +16,25 @@ table.listesems tr td.titresem { font-weight: bold; font-size: 110%; } +td.lockimg { + text-align: center; +} + +a.disabled-link { + pointer-events: none; + color: gray; + text-decoration: none; + cursor: not-allowed; +} +#formsemestres-select-infos { + margin-left: 16px; + color: purple; + font-weight: normal; +} +#formsemestres-select-infos a { + margin-left: 8px; + text-decoration: underline; +} div.semlist { padding-right: 8px; } @@ -63,6 +82,11 @@ div#gtrcontent table.semlist tbody tr.css_MEXT td { color: #fefcdf; } +div#gtrcontent table.semlist tbody tr.selected td { + background-color: yellow; + font-weight: bold; +} + table.semlist tr td { border: none; }