Pages enfant
  • 3. Personnalisation

Vous regardez une version antérieure (v. /wiki/display/PROJMONDOSSIERWEB/3.+Personnalisation) de cette page.

afficher les différences afficher l'historique de la page

« Afficher la version précédente Vous regardez la version actuelle de cette page. (v. 23) afficher la version suivante »

 

La personnalisation n'est possible que pour SOLUTION 2 (voir 2. Installation initiale).

Si vous avez opté pour SOLUTION 1, passez directement à la partie 4. Déploiement.


Tous les fichiers de personnalisation sont renommés en xxx.sample.extension de manière à ne pas les écraser lors des mises à jour de l'application.

3.1 Charte graphique

Changement des couleurs
  • Renommez le fichier /src/main/resources/VAADIN/themes/valo-ul/styles.sample.scss en styles.scss
  • Ouvrez le fichier /src/main/resources/VAADIN/themes/valo-ul/styles.scss
  • En haut du fichier, vous pourrez voir les couleurs qui ont été pré-établie pour l'application (variable $style_pantone_XXX). Vous pouvez évidemment en définir une nouvelle au format rgb
  • Et remplacez la variable $v-focus-color par la couleur désirée
Changement de la taille de police moyenne de l'application
  • Modifiez la valeur de la variable $v-font-size en pixel. Attention, le développement de l'application s'est fait avec la taille de police fixée à 15px, une modification de la taille peut affecter la disposition et l'aspect de certaines pages

3.2 Messages

Pour modifier les messages prévus par défaut, il suffit de les redéfinir dans des fichiers .properties.

Dans le répertoires resources/i18n vous trouverez 2 fichiers à renommer :

  • messages.sample.properties à renommer en messages.properties => pour surcharger les  messages 'standards' affichés par l'application
  • vaadin-messages.sample.properties à renommer en vaadin-messages.properties => pour surcharger les messages des composants vaadin (ex : "Votre session a expiré" ou "Connexion perdue, tentative de reconnexion..."

Les fichiers messages.properties et vaadin-messages.properties sont optionnels et ne doivent contenir donc que les messages à modifier.

 

3.3 Requêtes SQL

Comme dans la version précédente de MonDossierWeb, certaines requêtes SQL sont modifiables pour permettre une plus grande flexibilité.

Attention à bien indiquer les paramètres entre '#'

 

Les requêtes que l'on peut surcharger sont les suivantes :

Nom dans apogeeRequest.xmlRôleRemarques
calendrierExamen

Récupération des examens programmés pour un étudiant.

Paramètres :

  • le code individu (cod_ind)

La requête fournie avec l'application est axée sur une règle de gestion spécifique à l'Université de Lorraine.

Vous aurez probablement besoin de modifier cette requête.

mailFromLogin

Récupération du mail de l'étudiant à partir de son login.

Paramètres :

  • le login de l'étudiant (login)

La requête fournie avec l'application utilise une table spécifique à l'Université de Lorraine stockant ces informations dans Apogée : ANNU_MEL_LOGIN.

Requête non utilisée de base par l'application.

Dans un soucis de migration depuis la version précédente de monDossierWeb, elle est cependant prévue pour des universités qui voudraient implémenter un bean ayant besoin de récupérer le mail à partir du login.

loginFromCodEtu

Récupération du login de l'étudiant à partir de son code étudiant.

Paramètres :

  • le code étudiant (cod_etu)

La requête fournie avec l'application utilise une table spécifique à l'Université de Lorraine stockant ces informations dans Apogée : ANNU_MEL_LOGIN.

Requête utilisée par le bean : LoginCodeEtudiantConverterImplUnivLorraine
mailFromCodEtu

Récupération du mail de l'étudiant à partir de son code étudiant.

Paramètres :

  • le code étudiant (cod_etu)

La requête fournie avec l'application utilise une table spécifique à l'Université de Lorraine stockant ces informations dans Apogée : ANNU_MEL_LOGIN.

Requête utilisée par le bean : EmailConverterImplUnivLorraine
quittances

Récupération des quittances valides pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
centrePayeurPourAffilie

Récupération du centre payeur pour un étudiant affilié.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
centrePayeurPourNonAffilie

Récupération du centre payeur pour un étudiant non affilié.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
montant1erPaiement

Récupération du montant du premier paiement pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
montant2emPaiement

Récupération du montant du deuxième paiement pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
montant3emPaiement

Récupération du montant du troisième paiement pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
date1erPaiement

Récupération de la date du premier paiement pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
date2emPaiement

Récupération de la date du deuixème paiement pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
date3emPaiement

Récupération de la date du troisième paiement pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
paiement3X

Récupération du témoin "tem_pmt_3f" pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
moyensDePaiement

Récupération des moyens de paiement pour un étudiant, une année universitaire et un numéro chronologique de quittance.

Paramètres:

  • le numéro chronologique de Situation quittance/Remboursement (num_occ_sqr)
  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
montantTotalPaye

Récupération du montant total payé pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
montantsPayes

Récupération du détail des droits payés pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
dateCotisation

Récupération de la date de cotisation pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl
mutuelle

Récupération de la mutuelle pour un étudiant et une année universitaire.

Paramètres:

  • le code individu (cod_ind)
  • l'année universitaire (cod_anu)
Requête utilisée par le bean : SsoApogeeServiceImpl

 

3.4 Beans interchangeables

Tout ajout de code personnalisé dans MDW doit se faire dans un package dédié reprenant le path logique pour la classe tout en indiquant le nom de votre université.

Ex :

  • fr.nomuniversite.mondossierweb.converters
  • fr.nomuniversite.mondossierweb.controllers

Par interface

Comme dans la version précédente de MonDossierWeb, certains beans java sont interchangeables pour permettre une plus grande flexibilité.

Vous pouvez créer votre propre bean si ceux proposés ne conviennent pas à votre environnement. Il suffit pour cela de créer une nouvelle classe java implémentant l'interface du bean d'origine, puis de modifier la classe à instancier dans le fichier context.xml (voir les paramètre de type 'Interface' ici).

Ces beans sont les suivants:

identifiant

rôle

interface à implémenter

packageimplémentations fournies

serveurphoto

récupération des photos des étudiants

IPhoto

fr.univlorraine.mondossierweb.photo
  • photoEmptyImpl : Implémentation vide
  • photoUnivLorraineImpl : Implémentation propre à l'Université de Lorraine

codetuFromLogin

récupération du cod_etu à partir du login d'un étudiant.

CodeEtudiantLoginConverterInterface

fr.univlorraine.mondossierweb.converters
  • codetuFromLoginLdapImpl : Récupération du cod_etu en passant par le LDAP

loginFromCodetu

récupération du login à partir du codetu d'un étudiant

LoginCodeEtudiantConverterInterface

fr.univlorraine.mondossierweb.converters
  • loginFromCodetuLdapImpl : Récupération du login en passant par le LDAP
  • loginFromCodetuUnivLorraineImpl : Implémentation Université de Lorraine
emailConvertercréation du mail à partir du login étudiantEmailConverterInterfacefr.univlorraine.mondossierweb.converters
  • emailConverterLdapImpl
  • emailConverterUnivLorraineImpl
  • emailConverterBasicImpl

Comme indiquer ci-dessus, les récupérations du login et du mail en fonction du cod_etu et se font, de base, à partir du LDAP via les implémentations :

  • codetuFromLoginLdapImpl
  • emailConverterLdapImpl

Mais les implémentations propres à l'université de Lorraine (utilisant une table MEL_LOGIN dans Apogée) sont disponibles via les implémentations :

  • loginFromCodetuUnivLorraineImpl
  • emailConverterUnivLorraineImpl

A noter que pour la récupération du mail il existe également une implémentation 'basic' qui concatène le login étudiant avec le paramètre applicatif 'extensionMailEtudiant' (voir Configuration). Cela se fait via l'implémentation:

  • emailConverterBasicImpl

Par extension

Certaines classes peuvent également être étendue afin d'en modifier légérement le comportement. Cela permet de redéfinir uniquement les méthodes dont vous souhaitez modifier le comportement.

Il vous faut créer votre propre classe java qui "extends"  la classe de MDW puis modifier la classe à instancier dans le fichier context.xml

identifiantrôleclasse à étendrepackage
resultatControllerrécupération des notes et résultats dans ApogéeResultatControllerfr.univlorraine.mondossierweb.controllers

Contribuer au projet

Dans le cas où vous avez créer vos propres classes java dans le but d'adapter MDW à vos besoins (voir ci-dessus), il se peut que vous soyez intéressé par le partage de votre code, afin d'en faire profiter d'autres universités par exemple.

Si votre code se trouve bien dans un package dédié (voir préconisation) vous pouvez faire une demande de pull-request sur le repository github. Si ces nouvelles classes n’empêche pas la compilation du projet, votre code pourra être intégré à la branche master.

 

Attention: Si, suite à une mise à jour du code interne à MDW ou aux librairies qu'il utilise, votre code empêche la compilation du projet, il pourra alors être supprimé pour ne pas bloquer les livraisons de l'application.

Libre à vous, ensuite, de re-livrer une nouvelle version corrigée de votre code par pull-request.

De même, si un bug provenant de votre code code est découvert, sa prise en charge et sa correction vous incombe. L'université de Lorraine ne pourra assurer le support de code hors package fr.univlorraine.

3.5 ElasticSearch

A partir de 2018 (version 1.2.2 de MDW), les packages "war" de MDWv3 sont paramétrés par défaut pour se connecter sur un ElasticSearch v2.

L'implémentation d'ElasticSearch au sein de monDossierWeb dépend de la version d'ElasticSearch installée.

Pour changer la version utilisée et passer en v1, il faut recompiler l'application à partir du package *-distribution.zip :

  • Editer le fichier pom.xml :
    • modifier la version de l'artefact mdw-tools de 2.x.y en 1.x.y puis re-déployer l'application (voir doc Déploiement)
  • Dans le fichier de context de monDossierWeb, configurer les champs ElasticSearch en majuscule.

    C'est à dire, remplacer :

    Extrait context.xml pour ElasticSearch v1
    <Parameter name="param.elasticsearch.index.champrecherche" value="lib_desc_obj" />
        <Parameter name="param.elasticsearch.index.champcodeobjet" value="cod_obj" />
        <Parameter name="param.elasticsearch.index.champversionobjet" value="cod_vrs_obj" />
        <Parameter name="param.elasticsearch.index.champlibelleobjet" value="lib_obj" /> 

    par :

    Extrait context.xml pour ElasticSearch v2
    <Parameter name="param.elasticsearch.index.champrecherche" value="LIB_DESC_OBJ" />
        <Parameter name="param.elasticsearch.index.champcodeobjet" value="COD_OBJ" />
        <Parameter name="param.elasticsearch.index.champversionobjet" value="COD_VRS_OBJ" />
        <Parameter name="param.elasticsearch.index.champlibelleobjet" value="LIB_OBJ" />

 

  • Aucune étiquette