!!!Expéditions

!!1. Qu'est ce que c'est ?

Expéditions est un site web qui s’appuie sur la base des expéditions (BasExp) pour fournir un cadre et des outils pour la valorisation des données issues des campagnes océanographiques, majoritairement, mais aussi terrestres. L'application permet d'avoir une vue d'ensemble des données biologiques d'un secteur (spécimens déposés ou non en collection) et de faciliter les exports de données d'un système d'information à l'autre. 
\\
\\

Plus de détail dans [la documentation fonctionnelle|BasExp_Doc_Fonctionnelle]

!1.2 Présentation à l'amphi Rouelle (Janvier 2015)
* BasExp et les campagnes Tropical Deep-Sea Benthos par Sophie Bary [BasExpVersionFinale.pptx]
* Genèse du projet par Patrice Pruvost [Basexp_genese_v2.ppt]
* BasExp dans le SI du MNHN par Simon Chagnoux [BasExpDansLeSI.pptx]
* BasExp les expéditions terrestres (programme cafotrop) par Eric Guilbert [Basexp-Cafotrop.pdf]
* Un cas d'exploitation scientifique de BasExp par Alexis Martin [basexp_AlexisMartin.pdf]


!!2. Le site 

[http://expeditions.mnhn.fr]



!!3. Comptes-rendus des réunions du groupe de travail BasExp
*la __[liste complète|BasExp_Documentation]__.

!!4. Documentations utilisateur

!4.1. Gestion des droits
Ils peuvent être gérés directement depuis le __site__ Expéditions ce qui permet de masquer en grande partie leur complexité. A lire si on a besoin d'une présentation détaillée.\\
Pour accéder au __menu__ de gestion des droits, il faut :
* Soit être super administrateur (__BASEXP_SA__)
* Soit faire partie du groupe de travail de BasExp (__BASEXP_WG__)
* Soit être administrateur d'au moins une campagne (__BASEXP_ADMIN_<ACRO_CAMPAGNE>__) ou d'au moins un programme (__BASEXP_ADMIN_PROG_<ACRO_PROGRAMME>__)

! 4.1 Droits dynamiques et droits statiques
Les droits statiques sont indépendants des campagnes, programmes et taxons.
Les droits dynamiques sont construits par campagne, par programme ou par couple taxon (classe) / campagne\\

* __droits statiques:__ \\ Ces droits correspondent aux ''security-role'' du __web.xml__
**__BASEXP__ (implicite, pour accéder au formulaire de connexion)
**__BASEXP_SA__ (Super Admin)
**__BASEXP_WG__ (Working Group)
**__BASEXP_S_GICIM__ (synchronisation avec base GICIM)
**__BASEXP_S_INVMAR__ (synchronisation avec base INVMAR)
**__BASEXP_ADMIN_PHOTO__ (administration de toutes les photos)
**__BASEXP_ACCESS_ADM_USER__ (implicite, pour accès au menu)
**__BASEXP_ACCESS_ADM_PHOTO__ (implicite, pour accès au menu)

* __droits dynamiques:__ \\ Forme générale : BASEXP_<ACTION>_<CIBLE>\\
**__BASEXP_ADMIN_<ACRO_CAMPAGNE>__ (administrer la campagne)
**__BASEXP_ADMIN_PHOTO_<ACRO_CAMPAGNE>__ (administrer les photos de la campagne)
**__BASEXP_DOC_<ACRO_CAMPAGNE>__ (accès doc confidentiels)
**__BASEXP_CONTRIB_<ACRO_CAMPAGNE>__ (Contribution taxonomique)
**__BASEXP_EDIT_<ACRO_CAMPAGNE>__ (Edition web)
**__BASEXP_R_<ACRO_CAMPAGNE>_<CLASSE>__ (Accès au taxon de rang classe lié à un lot confidentiel) 
**__BASEXP_ADMIN_PROG_<ACRO_PROGRAMME>__ (administrer le programme)
**__BASEXP_EDIT_PROG_<ACRO_PROGRAMME>__ (Edition web)
**__BASEXP_DOC_PROG_<ACRO_PROGRAMME>__ (accès doc confidentiels)



! 4.2 Portée des droits
Il n'y a que ceux qui ont le droit __BASEXP_WG__ qui peuvent donner (et retirer) les droits d'admin sur les campagnes (__BASEXP_ADMIN_<ACRO_CAMPAGNE>__) ou les programmes (__BASEXP_ADMIN_PROG_<ACRO_PROGRAMME>__) à tout autre utilisateur que ceux qui sont __BASEXP_WG__.\\
Ceux qui ont le droit d'admin d'une campagne (programme) peuvent donner des droits sur cette campagne (programme) mais ne peuvent pas donner le droit d'admin à un autre.

1) Le droit __BASEXP_SA__ (Super Admin) permet de distribuer le droit __BASEXP_WG__ (Working Group) à certains utilisateurs

2) Celui qui a le droit __BASEXP_WG__ peut EXPLICITEMENT se donner les droits :
*__BASEXP_ADMIN_<ACRO_CAMPAGNE>__ 
*__BASEXP_ADMIN_PROG_<ACRO_PROGRAMME>__
*les droits de versement : __BASEXP_S_<BASE_COLLECTION>__
*le droit __BASEXP_ADMIN_PHOTO__
Les droits __BASEXP_S_<BASE_COLLECTION>__et __BASEXP_ADMIN_PHOTO__ ne sont pas transmissibles : c'est à dire que seuls les membres du groupe de travail peuvent se donner à eux seuls EXPLICITEMENT ces droits.

3) Ceux qui ont le droit __BASEXP_WG__ ne peuvent pas entre eux modifier leurs droits.

4) Celui qui a le droit  __BASEXP_ADMIN_<ACRO_CAMPAGNE>__ et pas __BASEXP_WG__ ne peut pas transmettre ce droit. Par contre il peut donner EXPLICITEMENT les droits :
*__BASEXP_DOC_<ACRO_CAMPAGNE>__ (accès doc confidentiels)
*__BASEXP_CONTRIB_<ACRO_CAMPAGNE>__ (Contribution taxonomique)
*__BASEXP_EDIT_<ACRO_CAMPAGNE>__ (Edition web)
*__BASEXP_R_<ACRO_CAMPAGNE>_<CLASSE>__ (Accès au taxon de rang classe lié à un lot confidentiel)

5) Il en est de même pour les droits sur le programme :__BASEXP_ADMIN_PROG_<ACRO_PROGRAMME>__
*__BASEXP_EDIT_PROG_<ACRO_PROGRAMME>__ (Edition web)
*__BASEXP_DOC_PROG_<ACRO_PROGRAMME>__ (accès doc confidentiels)


6) Les droits __BASEXP_ADMIN_<ACRO_CAMPAGNE>__  et __BASEXP_ADMIN_PROG_<ACRO_PROGRAMME>__ sont accompagnés IMPLICITEMENT du droit __BASEXP_ACCESS_ADM_USER__ (accès au menu)
de même pour la gestion des photos  :
__BASEXP_ACCESS_ADM_PHOTO__ (accès au menu) + __BASEXP_ADMIN_PHOTO_<ACRO_CAMPAGNE>__


!!!%%(color:red)__Attention__/%
*Un admin d'une campagne ou d'un programme ne voit qu'une partie des droits d'un utilisateur : c'est à dire les droits qui portent sur cette campagne ou sur ce programme. Cette restriction ne concerne pas les utilisateurs qui ont le droit __BASEXP_WG__
*Un Super Admin __BASEXP_SA__ ne doit pas se donner le droit __BASEXP_WG__ car il ne pourra plus alors enlever/ajouter des droits aux autres utilisateurs __BASEXP_WG__ (en l'état actuel du code...)



!4.2. Synchronisation GICIM ou INVMAR avec BasExp

([Document|doc utilisateur appli basexpref.doc])



!Présentation 


Il s’agit  d'une interface Web pour la mise à jour des données campagnes dans INVMAR ou GICIM à partir de celles Basexp

Une fois connecté, l’utilisateur a accès à la liste des campagnes qu’il a  préalablement définies dans sa base comme pouvant être mises à jour par le  référentiel. 

Au regard de chaque ligne, un bouton « Valider » permet à l’utilisateur d’activer le traitement pour la campagne  concernée. Un message de fin de traitement informe sur la bonne fin où non de la demande de mise à jour. 

!!Principe.

L'application contrôle que chaque station de la campagne a bien un pendant dans le référentiel BasExp avant d'autoriser le traitement de mise à jour.
\\
\\

Les tables impactées sont :
 [{Image src = 'tables_impactees.JPG'}]
Le traitement procède par « annule et remplace » des valeurs des colonnes. Les colonnes spécifiques aux tables de la base cible ne sont pas impactées.
Le traitement réalise les types d'opérations indiqués sur le tableau ci-dessus. 
* On créer une entrée dans une table si la valeur recherchée n'existe pas dans la base cible.
Exemple : si on ne trouve pas de station pour une collecte, on créer la station.
* On supprime une entrée dans la table station si elle ne correspond plus à une collecte dans le référentiel. 


!!Modes opératoires

!Mise à jour d'une campagne à partir du référentiel BasExp.

Le rapprochement entre une campagne INVMAR (respectivement  GICIM) et une campagne BasExp se fait en deux étapes :
* 1ère étape sur JACIM ,
** on reporte la valeur de l'identifiant (CAMPAGNEPK)  de la campagne BasExp dans la colonne  "BASEXP_CAMPAGNEFK" de la campagne cible. 
** on report dans la colonne "BASEXP_COLLECTEFK" de chaque station de la campagne INVMAR (respectivement GICIM) l'identifiant de la collecte correspondante (COLLECTEPK).
* 2ème étape sur l’application Web BASEXPREF,
** on  se connecte à l’application,
** on renseigne où non les critères de sélection pour l’affichage des campagnes et l’on clique sur le bouton Rechercher.
le système, affiche les campagnes trouvées. Il ne reste plus à l’utilisateur qu’à  cliquer  sur le bouton " Valider" de la campagne qu’il souhaite mettre à jour.
En fin de traitement, un message indique à l’utilisateur si l’opération c’est déroulée correctement. 


!Création d’une campagne à partir du référentiel BasExp.

La procédure est un peu plus simple que pour la mise à jour. 

* 1ère étape sur JACIM, on crée une nouvelle campagne dans la base cible et on renseigne la colonne « BASEXP_CAMPAGNEFK » avec l’identifiant de la campagne BasExp à copier.
* 2ème étape sur l’application Web BASEXPREF, identique au cas de mise à jour. 
 
!!Dialogue Homme-machine.
\\
\\

1.	L'identification utilisateur.


[{Image src = 'connexion.jpg'}] 
\\
\\

Au niveau de la barre d'entête, le lien "Login MNHN" donne accès à la page d'identification.
\\
\\

[{Image src = 'formulaire_connexion.JPG'}] 
 Une fois identifié l'utilisateur dispose de la ligne de menu de synchronisation de GICIM où d'INVMAR.

\\
\\


2.	Liste des campagnes en relation avec le référentiel.
[{Image src = 'formulaire_criteres_selection.JPG'}] 

\\
\\

3.	Mise à jour d’une campagne.
[{Image src = 'formulaire_maj_campagne.JPG'}] 
\\
\\

4)	Détail campagne.
Cette page liste les stations de la campagne sélectionnée.
[{Image src = 'formulaire_detail_campagne.JPG'}]

Les informations affichées dans cette page correspondent aux informations mise à jour par le référentiel pour la station. Elles ne sont pas tout à fait identiques suivant qu'il s'agit d'INVMAR où de GICIM. 

Cette page est utile pour identifier les stations qui n'ont pas encore été associées à une collecte et également pour contrôler les mises à jour effectuées.

[{Image src = 'formulaire_detail_campagne_2.JPG'}]

\\
\\

!!5. le modèle de données BasExp

[{Image src = 'basExp.jpg'}]