[scodoc-devel] [SVN] Scolar : [1586] Ajout d'un mail personnel en plus de l' adresse institutionnelle

eviennet at lipn.univ-paris13.fr eviennet at lipn.univ-paris13.fr
Jeu 1 Déc 17:59:35 CET 2016


Une pièce jointe HTML a été nettoyée...
URL: https://listes.univ-paris13.fr/pipermail/scodoc-devel/attachments/20161201/29935125/attachment.htm 
-------------- section suivante --------------
Modified: branches/ScoDoc7/ImportScolars.py
===================================================================
--- branches/ScoDoc7/ImportScolars.py	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/ImportScolars.py	2016-12-01 16:59:35 UTC (rev 1586)
@@ -60,7 +60,7 @@
     'apb_classment_gr',
     'nomlycee', 'villelycee', 'codepostallycee', 'codelycee',
     # Adresse:
-    'email', 'domicile', 'codepostaldomicile', 'villedomicile', 'paysdomicile', 'telephone', 'telephonemobile',
+    'email', 'emailperso', 'domicile', 'codepostaldomicile', 'villedomicile', 'paysdomicile', 'telephone', 'telephonemobile',
     # Debouche
     'debouche'
     )

Modified: branches/ScoDoc7/ZScolar.py
===================================================================
--- branches/ScoDoc7/ZScolar.py	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/ZScolar.py	2016-12-01 16:59:35 UTC (rev 1586)
@@ -749,7 +749,9 @@
             # etudiant non trouvé: message d'erreur
             d = {
                 'etudid' : etudid,
-                'nom' : '?', 'nom_usuel' : '', 'prenom' : '?', 'sexe' : '?', 'email' : '?',
+                'nom' : '?', 'nom_usuel' : '', 'prenom' : '?', 'sexe' : '?', 
+                'email' : '?',
+                'emailperso' : '',
                 'error' : 'code etudiant inconnu' }
             return sendResult(REQUEST, d, name='etudiant', format=format, force_outer_xml_tag=False)
         d = {}
@@ -757,7 +759,7 @@
         self.fillEtudsInfo([etud])
         
         for a in ('etudid', 'code_nip', 'code_ine', 'nom', 'nom_usuel', 'prenom', 'sexe',
-                  'nomprenom', 'email',
+                  'nomprenom', 'email', 'emailperso',
                   'domicile', 'codepostaldomicile', 'villedomicile', 'paysdomicile', 'telephone', 'telephonemobile', 'fax',
                   'bac', 'specialite', 'annee_bac',
                   'nomlycee', 'villelycee', 'codepostallycee', 'codelycee',
@@ -929,7 +931,8 @@
             REQUEST.URL0, REQUEST.form, 
             ( ('adresse_id', {'input_type' : 'hidden' }),
               ('etudid',  { 'input_type' : 'hidden' }),
-              ('email',  { 'size' : 40, 'title' : 'e-mail' }),
+              ('email',  { 'size' : 40, 'title' : 'e-mail', 'explanation' : 'adresse institutionnelle'  }),
+              ('emailperso',  { 'size' : 40, 'title' : 'e-mail', 'explanation' : 'adresse personnelle' }),
               ('domicile'    ,  { 'size' : 65, 'explanation' : 'numéro, rue', 'title' : 'Adresse' }),
               ('codepostaldomicile', { 'size' : 6, 'title' : 'Code postal' }),
               ('villedomicile', { 'size' : 20, 'title' : 'Ville' }),
@@ -1914,7 +1917,7 @@
             return '\n'.join(H) + self.sco_footer(REQUEST)
     
     security.declareProtected(ScoEtudInscrit, "formsemestre_import_etud_admission")
-    def formsemestre_import_etud_admission(self, formsemestre_id, import_email=False, REQUEST=None):
+    def formsemestre_import_etud_admission(self, formsemestre_id, import_email=True, REQUEST=None):
         """Reimporte donnees admissions par synchro Portail Apogée"""
         no_nip, unknowns, changed_mails = sco_synchro_etuds.formsemestre_import_etud_admission(self.Notes, formsemestre_id, import_identite=True, import_email=import_email)
         H = [ self.Notes.html_sem_header( REQUEST, 'Reimport données admission' ),

Modified: branches/ScoDoc7/config/postupgrade-db.py
===================================================================
--- branches/ScoDoc7/config/postupgrade-db.py	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/config/postupgrade-db.py	2016-12-01 16:59:35 UTC (rev 1586)
@@ -491,6 +491,10 @@
     check_field(cnx, 'admissions', 'apb_classement_gr',
                 ['alter table admissions add column apb_classement_gr integer default NULL',
                  ])
+    # Adresse mail perso
+    check_field(cnx, 'adresse', 'emailperso',
+                ['alter table adresse add column emailperso text',
+                 ])
     # Add here actions to performs after upgrades:
     
     cnx.commit()

Modified: branches/ScoDoc7/misc/createtables.sql
===================================================================
--- branches/ScoDoc7/misc/createtables.sql	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/misc/createtables.sql	2016-12-01 16:59:35 UTC (rev 1586)
@@ -64,7 +64,8 @@
 CREATE TABLE adresse (
     adresse_id text DEFAULT notes_newid_etud('ADR'::text) NOT NULL,
     etudid text NOT NULL,
-    email text,
+    email text, -- email institutionnel
+    emailperso text, -- email personnel (exterieur)    
     domicile text,
     codepostaldomicile text,
     villedomicile text,

Modified: branches/ScoDoc7/misc/format_import_etudiants.txt
===================================================================
--- branches/ScoDoc7/misc/format_import_etudiants.txt	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/misc/format_import_etudiants.txt	2016-12-01 16:59:35 UTC (rev 1586)
@@ -42,6 +42,7 @@
 codelycee;    text;     admissions; 1;  code national etablissement;UAI établissement;
 #
 email;        text;     adresse;    1;  adresse e-mail;mail
+emailperso; text;     adresse;    1;  adresse e-mail;mailperso;mail personnel;mail externe
 domicile;     text;     adresse;    1;  adresse domicile
 codepostaldomicile; text; adresse;  1;  code postal domicile
 villedomicile; text;    adresse;    1;  ville domicile

Modified: branches/ScoDoc7/sco_abs_notification.py
===================================================================
--- branches/ScoDoc7/sco_abs_notification.py	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/sco_abs_notification.py	2016-12-01 16:59:35 UTC (rev 1586)
@@ -119,8 +119,8 @@
             destinations.append(prefs['abs_notify_email'])
         if prefs['abs_notify_etud']:
             etud = context.getEtudInfo(etudid=etudid, filled=1)[0]
-            if etud['email']:
-                destinations.append(etud['email'])        
+            if etud['email_default']:
+                destinations.append(etud['email_default'])        
     
     # Notification (à chaque fois) des resp. de modules ayant des évaluations
     # à cette date

Modified: branches/ScoDoc7/sco_bulletins.py
===================================================================
--- branches/ScoDoc7/sco_bulletins.py	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/sco_bulletins.py	2016-12-01 16:59:35 UTC (rev 1586)
@@ -665,14 +665,14 @@
         pdfdata, filename = sco_bulletins_generator.make_formsemestre_bulletinetud(
             context, I, version=version, format='pdf', REQUEST=REQUEST)
 
-        if not etud['email']:
+        if not etud['email_default']:
             return ('<div class="boldredmsg">%s n\'a pas d\'adresse e-mail !</div>'
                     % etud['nomprenom']) + htm, I['filigranne']
         #
         mail_bulletin(context, formsemestre_id, I, pdfdata, filename)
-        
+        emaillink = '<a class="stdlink" href="mailto:%s">%s</a>'%(etud['email_default'], etud['email_default'])
         return ('<div class="head_message">Message mail envoyé à %s</div>'
-                % (etud['emaillink'])) + htm, I['filigranne']
+                % (emaillink)) + htm, I['filigranne']
     
     else:
         raise ValueError("do_formsemestre_bulletinetud: invalid format (%s)" % format)
@@ -699,7 +699,7 @@
     
     msg = MIMEMultipart()
     subj = Header( 'Relevé de notes de %s' % etud['nomprenom'],  SCO_ENCODING )
-    recipients = [ etud['email'] ] 
+    recipients = [ etud['email_default'] ] 
     msg['Subject'] = subj
     msg['From'] = context.get_preference('email_from_addr',formsemestre_id)
     msg['To'] = ' ,'.join(recipients)
@@ -772,7 +772,7 @@
           },
         { 'title' : "Envoi par mail à l'étudiant",
           'url' : url + '?formsemestre_id=%s&amp;etudid=%s&amp;format=pdfmail&amp;version=%s' % (formsemestre_id,etudid,version),
-          'enabled' : etud['email'] and can_send_bulletin_by_mail(context, formsemestre_id, REQUEST) # possible slt si on a un mail...
+          'enabled' : etud['email_default'] and can_send_bulletin_by_mail(context, formsemestre_id, REQUEST) # possible slt si on a un mail...
           },
         { 'title' : 'Version XML',
           'url' : url + '?formsemestre_id=%s&amp;etudid=%s&amp;format=xml&amp;version=%s' % (formsemestre_id,etudid,version),

Modified: branches/ScoDoc7/sco_bulletins_json.py
===================================================================
--- branches/ScoDoc7/sco_bulletins_json.py	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/sco_bulletins_json.py	2016-12-01 16:59:35 UTC (rev 1586)
@@ -121,7 +121,9 @@
         prenom=quote_xml_attr(etudinfo['prenom']),
         sexe=quote_xml_attr(etudinfo['sexe']),
         photo_url=quote_xml_attr(sco_photos.etud_photo_url(context, etudinfo)),
-        email=quote_xml_attr(etudinfo['email']))    
+        email=quote_xml_attr(etudinfo['email']),
+        emailperso=quote_xml_attr(etudinfo['emailperso'])
+        )    
     
     # Disponible pour publication ?
     if not published:

Modified: branches/ScoDoc7/sco_bulletins_xml.py
===================================================================
--- branches/ScoDoc7/sco_bulletins_xml.py	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/sco_bulletins_xml.py	2016-12-01 16:59:35 UTC (rev 1586)
@@ -98,7 +98,9 @@
         prenom=quote_xml_attr(etudinfo['prenom']),
         sexe=quote_xml_attr(etudinfo['sexe']),
         photo_url=quote_xml_attr(sco_photos.etud_photo_url(context, etudinfo)),
-        email=quote_xml_attr(etudinfo['email']))    
+        email=quote_xml_attr(etudinfo['email']),
+        emailperso=quote_xml_attr(etudinfo['emailperso']),
+        )    
     doc._pop()
 
     # Disponible pour publication ?

Modified: branches/ScoDoc7/sco_groups_view.py
===================================================================
--- branches/ScoDoc7/sco_groups_view.py	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/sco_groups_view.py	2016-12-01 16:59:35 UTC (rev 1586)
@@ -380,6 +380,7 @@
     titles = { 'nom_disp' : 'Nom',
                'prenom' : 'Prénom',
                'email' : 'Mail',
+               'emailperso' : 'Personnel',
                'etat':'Etat',
                'etudid':'etudid',
                'code_nip':'code_nip', 'code_ine':'code_ine',
@@ -397,6 +398,7 @@
     if format != 'html': # ne mentionne l'état que en Excel (style en html)
         columns_ids.append('etat')
     columns_ids.append('email')
+    columns_ids.append('emailperso')
     if with_codes:
         columns_ids += ['etape', 'etudid', 'code_nip', 'code_ine']
     if with_paiement:
@@ -416,6 +418,10 @@
             etud['_email_target'] = 'mailto:' + etud['email']
         else:
             etud['_email_target'] = ''
+        if  etud['emailperso']:
+            etud['_emailperso_target'] = 'mailto:' + etud['emailperso']
+        else:
+            etud['_emailperso_target'] = ''
         etud['_nom_disp_target'] = 'ficheEtud?etudid=' + etud['etudid']
         etud['_prenom_target'] = 'ficheEtud?etudid=' + etud['etudid']
 
@@ -444,7 +450,7 @@
                     preferences=context.get_preferences(groups_infos.formsemestre_id) )
     #
     if format == 'html':
-        amail=','.join([x['email'] for x in groups_infos.members if x['email'] ])
+        amail=','.join([x['email_default'] for x in groups_infos.members if x['email_default'] ])
 
         if len(groups_infos.members):
             if groups_infos.tous_les_etuds_du_sem:
@@ -523,7 +529,7 @@
                 'inscriptionstr']
         if with_paiement:
             keys.append('paiementinscription')
-        keys += [ 'email', 'domicile', 'villedomicile', 'codepostaldomicile', 'paysdomicile',
+        keys += [ 'email', 'emailperso', 'domicile', 'villedomicile', 'codepostaldomicile', 'paysdomicile',
                   'telephone', 'telephonemobile', 'fax',
                   'date_naissance', 'lieu_naissance',
                   'bac', 'specialite', 'annee_bac',

Modified: branches/ScoDoc7/sco_page_etud.py
===================================================================
--- branches/ScoDoc7/sco_page_etud.py	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/sco_page_etud.py	2016-12-01 16:59:35 UTC (rev 1586)
@@ -144,6 +144,14 @@
                                                          info['telephonemobilestr']) 
     else:
         info['telephones'] = ''
+    # e-mail:
+    if info['email_default']:
+        info['emaillink'] = ', '.join([ 
+            '<a class="stdlink" href="mailto:%s">%s</a>'%(m, m)
+            for m in [ etud['email'],etud['emailperso'] ] if m 
+            ])
+    else:
+        info['emaillink'] = '<em>(pas d\'adresse e-mail)</em>'    
     # champs dependant des permissions
     if authuser.has_permission(ScoEtudChangeAdr,context):
         info['modifadresse'] = '<a class="stdlink" href="formChangeCoordonnees?etudid=%s">modifier adresse</a>' % etudid

Modified: branches/ScoDoc7/sco_synchro_etuds.py
===================================================================
--- branches/ScoDoc7/sco_synchro_etuds.py	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/sco_synchro_etuds.py	2016-12-01 16:59:35 UTC (rev 1586)
@@ -475,6 +475,7 @@
                      'code_nip' :  etud['nip'],
                      'code_ine' : etud['ine'],
                      'email' : etud['mail'].strip(),
+                     # 'emailperso' : etud['mailperso'].strip(),  # non renvoye par le portail
                      'domicile' : address,
                      'codepostaldomicile' : etud.get('postalcode', '').strip(),
                      'villedomicile' : etud['city'].strip(),
@@ -617,7 +618,12 @@
             if etud:
                 do_import_etud_admission(context, cnx, etudid, etud, import_naissance=True, import_identite=import_identite)
                 if import_email and info['email'] != etud['mail']:
-                    scolars.adresse_edit( cnx, args={'etudid': etudid, 'adresse_id': info['adresse_id'], 'email' : etud['mail']}, context=context )
+                    scolars.adresse_edit( 
+                        cnx, args={
+                            'etudid': etudid, 
+                            'adresse_id': info['adresse_id'], 
+                            'email' : etud['mail']
+                            }, context=context )
                     changed_mails.append( (info, etud['mail']) )
             else:
                 unknowns.append(code_nip)

Modified: branches/ScoDoc7/scolars.py
===================================================================
--- branches/ScoDoc7/scolars.py	2016-11-30 11:03:21 UTC (rev 1585)
+++ branches/ScoDoc7/scolars.py	2016-12-01 16:59:35 UTC (rev 1586)
@@ -78,10 +78,10 @@
         etud['ne'] = ''
     else:
         etud['ne'] = 'e'
-    if 'email' in etud and etud['email']:
-        etud['emaillink'] = '<a class="stdlink" href="mailto:%s">%s</a>'%(etud['email'],etud['email'])
-    else:
-        etud['emaillink'] = '<em>(pas d\'adresse e-mail)</em>'
+    # Mail à utiliser pour les envois vers l'étudiant:
+    # choix qui pourrait être controé par une preference
+    # ici priorité au mail institutionnel:
+    etud['email_default'] = etud.get('email', '') or etud.get('emailperso', '') 
 
 
 
@@ -357,7 +357,8 @@
 _adresseEditor = EditableTable(
     'adresse',
     'adresse_id',
-    ( 'adresse_id','etudid','email',
+    ( 'adresse_id','etudid',
+      'email','emailperso',
       'domicile','codepostaldomicile','villedomicile','paysdomicile',
       'telephone','telephonemobile','fax',
       'typeadresse','entreprise_id','description' ),
@@ -392,7 +393,7 @@
 
 
 def getEmail(cnx,etudid):
-    "get email etudiant (si plusieurs adresses, prend le premier non null"
+    "get email institutionnel etudiant (si plusieurs adresses, prend le premier non null"
     adrs = adresse_list(cnx, {'etudid' : etudid})
     for adr in adrs:
         if adr['email']:


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