[scodoc-devel] [SVN] Scolar : [1658] [PE] Generation classeur LaTeX des avis

eviennet at lipn.univ-paris13.fr eviennet at lipn.univ-paris13.fr
Sam 1 Juil 23:14:19 CEST 2017


Une pièce jointe HTML a été nettoyée...
URL: https://listes.univ-paris13.fr/pipermail/scodoc-devel/attachments/20170701/1d556cbc/attachment-0001.htm 
-------------- section suivante --------------
Modified: branches/ScoDoc7/pe_avislatex.py
===================================================================
--- branches/ScoDoc7/pe_avislatex.py	2017-07-01 10:26:03 UTC (rev 1657)
+++ branches/ScoDoc7/pe_avislatex.py	2017-07-01 21:14:19 UTC (rev 1658)
@@ -31,10 +31,10 @@
 def comp_latex_parcourstimeline( etudiant, promo ) :
     """Interprète un tag dans un avis latex **parcourstimeline**
     et génère le code latex permettant de retracer le parcours d'un étudiant
-    sous la forme d'une frise temporelle."""
+    sous la forme d'une frise temporelle.
+    Nota: modeles/parcourstimeline.tex doit avoir été inclu dans le préambule
+    """
     codelatexDebut =  """
-    \\input{modeles/parcourstimeline.tex}
-
     \\begin{parcourstimeline}{**debut**}{**fin**}{**nbreSemestres**}{17}
     """
 
@@ -72,14 +72,11 @@
     else:
         return (None, None, None, None)
 
-def get_code_latex_avis_etudiant( donnees_etudiant, modele ):
+def get_code_latex_avis_etudiant( donnees_etudiant, un_avis_latex ):
     """
     Renvoie le code latex permettant de générer l'avis d'un étudiant en utilisant ses donnees_etudiant contenu dans le
     dictionnaire de synthèse du jury PE et en suivant un fichier modele donné
     """
-    # Lecture du fichier
-    un_avis_latex = get_code_latex_from_modele( modele )
-
     # Recherche des tags dans le fichier
     tags_latex = get_tag_latex(un_avis_latex)
     if DEBUG: print( "Les tags" +str(tags_latex) )

Modified: branches/ScoDoc7/pe_jurype.py
===================================================================
--- branches/ScoDoc7/pe_jurype.py	2017-07-01 10:26:03 UTC (rev 1657)
+++ branches/ScoDoc7/pe_jurype.py	2017-07-01 21:14:19 UTC (rev 1658)
@@ -134,16 +134,22 @@
         self.syntheseJury = self.synthetise_juryPE()
         if PE_DEBUG:
             filename = self.REPERTOIRE_EXPORT + "jury.txt"
-            self.zipfile.writestr(filename, str(self.syntheseJury))
+            self.add_file_to_zip(filename, str(self.syntheseJury))
         
         filename = self.REPERTOIRE_EXPORT + "jurySyntheseDict_" + str(self.diplome) + '.xls'
         self.xls = self.table_syntheseJury(mode="singlesheet")
-        self.zipfile.writestr(filename, self.xls.excel()) #Fabrique 1 fichier excel résultat avec 1 seule feuille => trop gros
+        # Fabrique 1 fichier excel résultat avec 1 seule feuille => trop gros
+        self.add_file_to_zip(filename, self.xls.excel())
         filename = self.REPERTOIRE_EXPORT + "jurySyntheseDict_" + str(self.diplome) + '_v2.xls'
         self.xlsV2 = self.table_syntheseJury(mode="multiplesheet")
-        self.zipfile.writestr(filename, self.xlsV2.excel() )
+        self.add_file_to_zip(filename, self.xlsV2.excel())
+    
+    def add_file_to_zip(self, filename, data):
+        """Add a file to aour zip
+        """
+        self.zipfile.writestr(filename, data )
 
-    def get_zippeddata(self):
+    def get_zipped_data(self):
         """returns zipped data with all generated (CSV) files
         """
         if self.zipfile:

Modified: branches/ScoDoc7/pe_view.py
===================================================================
--- branches/ScoDoc7/pe_view.py	2017-07-01 10:26:03 UTC (rev 1657)
+++ branches/ScoDoc7/pe_view.py	2017-07-01 21:14:19 UTC (rev 1658)
@@ -21,7 +21,7 @@
 # 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 at viennet.net
+#   Emmanuel Viennet      emmanuel at viennet.net
 #
 ##############################################################################
 
@@ -42,6 +42,7 @@
 import pe_semestretag
 import pe_settag
 import pe_jurype
+import pe_avislatex
 
 
 def pe_view_sem_recap(context, formsemestre_id, REQUEST=None):
@@ -51,7 +52,18 @@
     semBase = sco_formsemestre.get_formsemestre(context, formsemestre_id)
     jury = pe_jurype.JuryPE(context, semBase )
 
-    data = jury.get_zippeddata()
+    # Ajout avis LaTeX au même zip:
+    etudids =  jury.syntheseJury.keys()
+    template_latex = context.get_preference('pe_avis_latex_tmpl', formsemestre_id)
+    latex_pages = []
+    for  etudid in etudids:
+        latex_pages.append('%% ---- Etudiant: %(sexe)s %(nom)s %(prenom)s' % jury.syntheseJury[etudid])
+        latex_pages.append( pe_avislatex.get_code_latex_avis_etudiant(jury.syntheseJury[etudid], template_latex) )
+    
+    doc_latex = '\n\n% ------\n'.join(latex_pages)
+    jury.add_file_to_zip( 'avis_poursuite.tex', doc_latex )
+    
+    data = jury.get_zipped_data()
     size = len(data)
     
     content_type = 'application/zip'

Modified: branches/ScoDoc7/sco_formsemestre_status.py
===================================================================
--- branches/ScoDoc7/sco_formsemestre_status.py	2017-07-01 10:26:03 UTC (rev 1657)
+++ branches/ScoDoc7/sco_formsemestre_status.py	2017-07-01 21:14:19 UTC (rev 1658)
@@ -131,7 +131,7 @@
           'url' : 'formsemestre_poursuite_report?formsemestre_id=' + formsemestre_id,
           'enabled' : True,
           },
-        { 'title' : 'Tables CSV Avis Poursuite Etude (expérimental !)',
+        { 'title' : 'Documents Avis Poursuite Etudes (expérimental !)',
           'url' : 'pe_view_sem_recap?formsemestre_id=' + formsemestre_id,
           'enabled' : True,
           },

Modified: branches/ScoDoc7/sco_preferences.py
===================================================================
--- branches/ScoDoc7/sco_preferences.py	2017-07-01 10:26:03 UTC (rev 1657)
+++ branches/ScoDoc7/sco_preferences.py	2017-07-01 21:14:19 UTC (rev 1658)
@@ -147,6 +147,7 @@
     ('bul_mail', { 'title' : 'Envoi des bulletins par e-mail',
                    'related' : ('bul', 'bul_margins', 'pdf') }),
     ('feuilles',      { 'title' : "Mise en forme des feuilles (Absences, Trombinoscopes, ...)" } ),
+    ('pe',       { 'title' : "Avis de poursuites d'études" } ),
     ('edt',      { 'title' : "Connexion avec le logiciel d'emplois du temps" } ),
 )
 
@@ -1165,6 +1166,16 @@
         'category' : 'feuilles',
         'only_global' : True
         }),
+    # Experimental: avis poursuite d'études
+    ( 'pe_avis_latex_tmpl',
+      { 'title' : "Template LaTeX des avis",
+        'initvalue' : '',
+        'explanation' : "préparez-le dans un éditeur de texte puis copier le contenu ici (en utf8).",
+        'input_type' : 'textarea',
+        'rows' : 8,
+        'cols' : 80,
+        'category' : 'pe',
+        }),
     # Lien avec logiciel emplois du temps 
     ( 'edt_sem_ics_url',
       { 'title' : "Lien EDT",

Modified: branches/ScoDoc7/static/icons/scologo_img.png
===================================================================
(Binary files differ)

Modified: branches/ScoDoc7/test_jurype.py
===================================================================
--- branches/ScoDoc7/test_jurype.py	2017-07-01 10:26:03 UTC (rev 1657)
+++ branches/ScoDoc7/test_jurype.py	2017-07-01 21:14:19 UTC (rev 1658)
@@ -121,7 +121,7 @@
 filename = '/tmp/test_pe.zip'
 print('Enregistrement du ZIP: ', filename)
 f = open(filename, 'w')
-f.write( jury.get_zippeddata() )
+f.write( jury.get_zipped_data() )
 f.close()
  
 # *****************************************************************************
@@ -132,7 +132,8 @@
 
 # Genere l'avis PE
 print( "Avis PE de %s (%s)" % (jury.syntheseJury[etudid]['nom'], etudid ))
-code_latex = pe_avislatex.get_code_latex_avis_etudiant( jury.syntheseJury[etudid], REPERTOIRE_MODELES + "un_avis.tex")
+un_avis_latex = pe_avislatex.get_code_latex_from_modele( REPERTOIRE_MODELES + "un_avis.tex" )
+code_latex = pe_avislatex.get_code_latex_avis_etudiant( jury.syntheseJury[etudid], un_avis_latex )
 
 # Sauvegarde l'avis
 fid = codecs.open( REPERTOIRE_ECRITURE_AVIS + modele, "w", encoding="utf-8")


Plus d'informations sur la liste de diffusion scodoc-devel