diff --git a/app/scodoc/sco_page_etud.py b/app/scodoc/sco_page_etud.py index 26b4ccbf6d502938d21aa0ace8ff733068b19e0a..41025c8064d0ee4aa0a8ba15bae708cb1fd3fd7e 100644 --- a/app/scodoc/sco_page_etud.py +++ b/app/scodoc/sco_page_etud.py @@ -44,6 +44,7 @@ from app.models import ( Identite, ScoDocSiteConfig, ValidationDUT120, + ModuleImpl ) from app.scodoc import ( codes_cursus, @@ -61,6 +62,7 @@ from app.scodoc.sco_bulletins import etud_descr_situation_semestre from app.scodoc.sco_exceptions import ScoValueError from app.scodoc.sco_formsemestre_validation import formsemestre_recap_parcours_table from app.scodoc.sco_permissions import Permission + import app.scodoc.sco_utils as scu @@ -425,10 +427,13 @@ def fiche_etud(etudid=None): info["module_html"] = f""" <div id=ressources class="ui-accordion ui-widget ui-helper-reset" data-etudid="{info['etudid']}"> - <span class="modules ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-accordion-icons"> Ressources: </span> + <span class="modules ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-accordion-icons"> Modules: </span> <div> <form> <ul class="listressources"> - rien mdr + {get_ressources(etud)} + </ul> + + <ul class="listressources"> </ul> </form> </div> </div> @@ -669,6 +674,73 @@ def fiche_etud(etudid=None): ], ) +def get_ressources(etud: Identite) -> str: + """Liste des ressources associées à un étudiant""" + res = "" + etudFormsemstres = list[FormSemestre](etud.get_formsemestres()) + if not etudFormsemstres: + return res + for formsemestre in etudFormsemstres: + """Ajouter un div pour chaque semestre""" + res += f""" + <div class="semestre"> + S{formsemestre.semestre_id}</a> + <div> + """ + """Ajouter un div pour chaque ressource""" + + ues = formsemestre.get_ues() + """Ranger les UE selon leurs types (code venant de formsemestres.py)""" + m_list = { + scu.ModuleType.RESSOURCE: [], + scu.ModuleType.SAE: [], + scu.ModuleType.STANDARD: [], + scu.ModuleType.MALUS: [], + } + for modimpl in formsemestre.modimpls_sorted: + d = modimpl.to_dict(convert_objects=True) + m_list[modimpl.module.module_type].append(d) + + + if m_list[scu.ModuleType.RESSOURCE]: + + res += f"""<section> + <div> + <h2> Ressources </h2> + """ + for ressource in m_list[scu.ModuleType.RESSOURCE]: + res += f""" + <div class="module"> + <h3> <a href="" target="_blank"> {ressource["module"]["code"]}</a> {ressource["module"]["titre"]} </h3> + </div> + <div class="ressource_desc"> + </div> + """ + + res += f"""</div> </section>""" + + + if m_list[scu.ModuleType.SAE]: + res += f"""<section> + <div> + <h2> SAE </h2> + """ + for sae in m_list[scu.ModuleType.SAE]: + res += f""" + <div class="module"> + <h3> <a href="" target="_blank"> {sae["module"]["code"]}</a> {sae["module"]["titre"]} </h3> + </div> + <div class="ressource_desc"> + </div> + """ + + res += f"""</div> </section>""" + + res += f""" + </div> + </div> + """ + return res def _format_adresse(adresse: Adresse | None) -> dict: """{ "telephonestr" : ..., "telephonemobilestr" : ... } (formats html)"""