# -*- mode: python -*- # -*- coding: utf-8 -*- ############################################################################## # # Gestion scolarite IUT # # Copyright (c) 1999 - 2024 Emmanuel Viennet. All rights reserved. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Emmanuel Viennet emmanuel.viennet@viennet.net # ############################################################################## ############################################################################## # Module "Avis de poursuite d'étude" # conçu et développé par Cléo Baras (IUT de Grenoble) ############################################################################## """ScoDoc : interface des fonctions de gestion des avis de poursuites d'étude """ from flask import flash, g, redirect, render_template, request, send_file, url_for from app.models import FormSemestre from app.pe import pe_comp from app.pe import pe_jury from app.views import ScoData from app.scodoc.sco_exceptions import ScoValueError import app.scodoc.sco_utils as scu # called from the web, POST or GET def pe_view_sem_recap(formsemestre_id: int): """Génération des avis de poursuite d'étude""" formsemestre = FormSemestre.get_formsemestre(formsemestre_id) if not formsemestre.formation.is_apc(): raise ScoValueError( """Le module de Poursuites d'Etudes n'est disponible que pour des formations BUT""" ) if formsemestre.formation.get_cursus().NB_SEM < 6: raise ScoValueError( """Le module de Poursuites d'Etudes n'est pas prévu pour une formation de moins de 6 semestres""" ) # L'année du diplome annee_diplome = pe_comp.get_annee_diplome_semestre(formsemestre) if request.method == "GET": return render_template( "pe/pe_view_sem_recap.j2", annee_diplome=annee_diplome, formsemestre=formsemestre, sco=ScoData(formsemestre=formsemestre), ) jury = pe_jury.JuryPE(annee_diplome, formsemestre.formation.formation_id) if not jury.diplomes_ids: flash("aucun étudiant à considérer !") return redirect( url_for( "notes.pe_view_sem_recap", scodoc_dept=g.scodoc_dept, formsemestre_id=formsemestre_id, ) ) data = jury.get_zipped_data() return send_file( data, mimetype="application/zip", download_name=scu.sanitize_filename(jury.nom_export_zip + ".zip"), as_attachment=True, )