diff --git a/module/Application/config/merged/agent.config.php b/module/Application/config/merged/agent.config.php
index d7246175259f5b1cdb4f489f5b7dbc726c7ef352..76525d7f37f038881925d2ce90a5cc751ba20fa3 100644
--- a/module/Application/config/merged/agent.config.php
+++ b/module/Application/config/merged/agent.config.php
@@ -7,6 +7,7 @@ use Application\Controller\Agent\AgentControllerFactory;
 use Application\Controller\AgentFichier\AgentFichierController;
 use Application\Controller\AgentFichier\AgentFichierControllerFactory;
 use Application\Controller\EntretienProfessionnel\EntretienProfessionnelController;
+use Application\Entity\Db\AgentStatut;
 use Application\Form\Agent\AgentForm;
 use Application\Form\Agent\AgentFormFactory;
 use Application\Form\Agent\AgentHydrator;
@@ -16,6 +17,7 @@ use Application\Form\Agent\AgentImportFormFactory;
 use Application\Provider\Privilege\AgentPrivileges;
 use Application\Service\Agent\AgentService;
 use Application\Service\Agent\AgentServiceFactory;
+use Application\View\Helper\AgentStatutViewHelper;
 use Application\View\Helper\AgentViewHelper;
 use UnicaenAuth\Guard\PrivilegeController;
 use Zend\Mvc\Router\Http\Literal;
@@ -222,6 +224,7 @@ return [
     'view_helpers' => [
         'invokables' => [
             'agent' => AgentViewHelper::class,
+            'agentStatut' => AgentStatutViewHelper::class,
         ],
     ],
 
diff --git a/module/Application/config/merged/menu.config.php b/module/Application/config/merged/menu.config.php
index ef20f69ebc23bad689ce6da01f1bf91822451857..77a1d7d35b6240fea2a7112028bb094408a9e5d6 100644
--- a/module/Application/config/merged/menu.config.php
+++ b/module/Application/config/merged/menu.config.php
@@ -199,7 +199,7 @@ return [
                                 'route' => 'activite',
                                 'privileges' => ActivitePrivileges::AFFICHER,
                                 'dropdown-header' => true,
-                                'icon' => 'fas fa-angle-right'
+                                'icon' => 'fas fa-angle-right',
                             ],
                             [
                                 'label' => 'Les agents',
diff --git a/module/Application/src/Application/Controller/Agent/AgentController.php b/module/Application/src/Application/Controller/Agent/AgentController.php
index ccf818b35c901bf74b816426e0805db0c8c8d7d3..b36ba1ec51878d30c3b32b643f98e702338d0759 100644
--- a/module/Application/src/Application/Controller/Agent/AgentController.php
+++ b/module/Application/src/Application/Controller/Agent/AgentController.php
@@ -106,6 +106,17 @@ class AgentController extends AbstractActionController
         return $this->redirect()->toRoute('agent', [], [], true);
     }
 
+    public function afficherStatutsAction()
+    {
+        $agent   = $this->getAgentService()->getRequestedAgent($this, 'agent');
+        $statuts = $agent->getStatuts();
+
+        return new ViewModel([
+            'title' => 'Statuts de l\'agent '.$agent->getDenomination(),
+            'status' => $statuts,
+        ]);
+    }
+
     public function importerAction()
     {
         $form = $this->getAgentImportForm();
diff --git a/module/Application/src/Application/Controller/IndexController.php b/module/Application/src/Application/Controller/IndexController.php
index 95e82e535528d24a8568fcd24e5ab723f4463118..1a3869c78e04da3a894d0fc479628fbcc2f0dce1 100755
--- a/module/Application/src/Application/Controller/IndexController.php
+++ b/module/Application/src/Application/Controller/IndexController.php
@@ -41,6 +41,8 @@ class IndexController extends AbstractActionController
         }
 
         $identity = $this->getUserService()->getConnectedUser();
+        if ($identity) {
+        }
 
         // !TODO bouger cela pour faire plus propre ...
         $agent = $this->getAgentService()->getAgentByUser($identity);
diff --git a/module/Application/src/Application/Entity/Db/Agent.php b/module/Application/src/Application/Entity/Db/Agent.php
index b81f638462f4016787ff9d3259b2b3581fc3255f..3cce0499507c782884ff7b86fb9f7c77a2d60463 100644
--- a/module/Application/src/Application/Entity/Db/Agent.php
+++ b/module/Application/src/Application/Entity/Db/Agent.php
@@ -29,6 +29,8 @@ class Agent {
     private $quotite;
     /** @var AgentStatus */
     private $status;
+    /** @var ArrayCollection (AgentStatut)*/
+    private $statuts;
     /** @var Correspondance */
     private $correspondance;
     /** @var Corps */
@@ -47,6 +49,7 @@ class Agent {
 
     public function __construct()
     {
+        $this->statuts  = new ArrayCollection();
         $this->fichiers = new ArrayCollection();
     }
     /**
@@ -170,6 +173,34 @@ class Agent {
         return $this;
     }
 
+    /**
+     * @return AgentStatut[]
+     */
+    public function getStatuts()
+    {
+        return $this->statuts->toArray();
+    }
+
+    /**
+     * @param AgentStatut $statut
+     * @return Agent
+     */
+    public function addStatut($statut)
+    {
+        $this->statuts->add($statut);
+        return $this;
+    }
+
+    /**
+     * @param AgentStatut $statut
+     * @return Agent
+     */
+    public function removeStatut($statut)
+    {
+        $this->statuts->removeElement($statut);
+        return $this;
+    }
+
     /**
      * @return Correspondance
      */
@@ -336,4 +367,19 @@ class Agent {
         }
         return $result;
     }
+
+    /**
+     * @return AgentStatut[]
+     */
+    public function getStatutsActifs()
+    {
+        $statutsActifs = [];
+        foreach ($this->statuts as $statut) {
+            if ($statut->isActif()) {
+                $statutsActifs[] = $statut;
+            }
+        }
+
+        return $statutsActifs;
+    }
 }
\ No newline at end of file
diff --git a/module/Application/src/Application/Entity/Db/AgentStatut.php b/module/Application/src/Application/Entity/Db/AgentStatut.php
index 7aeb723be433be08e066e0674e181366fb76014d..0462b31cd73cc1ba5d3b3bbd62144f6df43cc4c0 100644
--- a/module/Application/src/Application/Entity/Db/AgentStatut.php
+++ b/module/Application/src/Application/Entity/Db/AgentStatut.php
@@ -3,6 +3,8 @@
 namespace Application\Entity\Db;
 
 use DateTime;
+use Exception;
+use UnicaenApp\Exception\RuntimeException;
 
 class AgentStatut {
     /** @var integer */
@@ -45,8 +47,8 @@ class AgentStatut {
     /** @var boolean */
     private $detacheIn;
     /** @var boolean */
-    private $detacheOut
-    /** @var boolean */;
+    private $detacheOut;
+    /** @var boolean */
     private $dispo;
     /** @var boolean */
     private $heberge;
@@ -416,15 +418,15 @@ class AgentStatut {
     }
 
     /**
-     * @return mixed
+     * @return boolean
      */
-    public function getDispo()
+    public function isDispo()
     {
         return $this->dispo;
     }
 
     /**
-     * @param mixed $dispo
+     * @param boolean $dispo
      * @return AgentStatut
      */
     public function setDispo($dispo)
@@ -487,5 +489,20 @@ class AgentStatut {
         return $this;
     }
 
-    
+    /**
+     * @return bool
+     */
+    public function isActif()
+    {
+        if ($this->fin === null) return true;
+
+        try {
+            $today = new DateTime();
+        } catch (Exception $e) {
+            throw new RuntimeException('Problème de récupération de la date');
+
+        }
+        return $today < $this->fin;
+    }
+
 }
\ No newline at end of file
diff --git a/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Agent.dcm.xml b/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Agent.dcm.xml
index ad1c9104982d3d5f2ee9d072019518840ef4ba00..c1113ad50e77a265b595f1061652ab4d4c4d09cc 100644
--- a/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Agent.dcm.xml
+++ b/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.Agent.dcm.xml
@@ -17,6 +17,9 @@
         <many-to-one target-entity="Application\Entity\Db\AgentStatus" field="status">
             <join-column name="status" referenced-column-name="id" />
         </many-to-one>
+
+        <one-to-many target-entity="Application\Entity\Db\AgentStatut" mapped-by="agent" field="statuts"/>
+
         <many-to-one target-entity="Application\Entity\Db\Correspondance" field="correspondance">
             <join-column name="correspondance" referenced-column-name="id" />
         </many-to-one>
diff --git a/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.AgentStatut.dcm.xml b/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.AgentStatut.dcm.xml
index ad1c9104982d3d5f2ee9d072019518840ef4ba00..312ed26aa2e518ee0fcb622c947edd339c148cf2 100644
--- a/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.AgentStatut.dcm.xml
+++ b/module/Application/src/Application/Entity/Db/Mapping/Application.Entity.Db.AgentStatut.dcm.xml
@@ -1,46 +1,40 @@
 <?xml version="1.0" encoding="utf-8"?>
 <doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
-    <entity name="Application\Entity\Db\Agent" table="agent">
+    <entity name="Application\Entity\Db\AgentStatut" table="agent_statut">
 
         <id name="id" type="integer" column="id">
             <generator strategy="IDENTITY"/>
         </id>
 
-        <field name="nom"               type="string" length="256"      column="nom_usuel"                nullable="false"/>
-        <field name="prenom"            type="string" length="256"      column="prenom"                   nullable="false"/>
-        <field name="dateDebut"         type="datetime"                 column="date_debut"               nullable="true"/>
-        <field name="dateFin"           type="datetime"                 column="date_fin"                 nullable="true"/>
-        <field name="quotite"           type="integer"                  column="quotite"                  nullable="true"/>
-        <field name="numeroPoste"       type="string" length="256"      column="numero_poste"             nullable="true"/>
-        <field name="missionsComplementaires"       type="string" length="2048"      column="missions_complementaires"             nullable="true"/>
+        <field name="sourceName"        type="string" length="64"       column="source_name"              nullable="true"/>
+        <field name="sourceId"          type="integer"                  column="source_id"                nullable="true"/>
 
-        <many-to-one target-entity="Application\Entity\Db\AgentStatus" field="status">
-            <join-column name="status" referenced-column-name="id" />
+        <field name="idOrigine"         type="string" length="256"      column="id_origine"               nullable="true"/>
+        <many-to-one target-entity="Application\Entity\Db\Agent"  field="agent">
+            <join-column name="agent_id" referenced-column-name="id"/>
         </many-to-one>
-        <many-to-one target-entity="Application\Entity\Db\Correspondance" field="correspondance">
-            <join-column name="correspondance" referenced-column-name="id" />
-        </many-to-one>
-        <many-to-one target-entity="Application\Entity\Db\Corps" field="corps">
-            <join-column name="corps" referenced-column-name="id" />
-        </many-to-one>
-        <many-to-one target-entity="Application\Entity\Db\Grade" field="grade">
-            <join-column name="grade" referenced-column-name="id" />
+        <many-to-one target-entity="Application\Entity\Db\Structure"  field="structure">
+            <join-column name="structure_id" referenced-column-name="id"/>
         </many-to-one>
+        <field name="debut"         type="datetime"                     column="debut"                   nullable="false"/>
+        <field name="fin"           type="datetime"                     column="fin"                     nullable="true"/>
 
-        <many-to-many field="fichiers" target-entity="Fichier\Entity\Db\Fichier" inversed-by="fichier" fetch="LAZY">
-            <join-table name="agent_fichier">
-                <join-columns>
-                    <join-column name="agent" referenced-column-name="id"/>
-                </join-columns>
-                <inverse-join-columns>
-                    <join-column name="fichier" referenced-column-name="id"/>
-                </inverse-join-columns>
-            </join-table>
-        </many-to-many>
-
-        <many-to-one target-entity="Utilisateur\Entity\Db\User" field="utilisateur">
-            <join-column name="utilisateur" referenced-column-name="id" />
-        </many-to-one>
+        <field name="titulaire"     type="boolean"                      column="titulaire"               nullable="true"/>
+        <field name="cdi"           type="boolean"                      column="cdi"                     nullable="true"/>
+        <field name="cdd"           type="boolean"                      column="cdd"                     nullable="true"/>
+        <field name="vacataire"     type="boolean"                      column="vacataire"               nullable="true"/>
+        <field name="enseignant"    type="boolean"                      column="enseignant"              nullable="true"/>
+        <field name="administratif" type="boolean"                      column="administratif"           nullable="true"/>
+        <field name="chercheur"     type="boolean"                      column="chercheur"               nullable="true"/>
+        <field name="etudiant"      type="boolean"                      column="etudiant"                nullable="true"/>
+        <field name="auditeurLibre" type="boolean"                      column="auditeur_libre"          nullable="true"/>
+        <field name="doctorant"     type="boolean"                      column="doctorant"               nullable="true"/>
+        <field name="detacheIn"     type="boolean"                      column="detache_in"              nullable="true"/>
+        <field name="detacheOut"    type="boolean"                      column="detache_out"             nullable="true"/>
+        <field name="dispo"         type="boolean"                      column="dispo"                   nullable="true"/>
+        <field name="heberge"       type="boolean"                      column="heberge"                 nullable="true"/>
+        <field name="emerite"       type="boolean"                      column="emerite"                 nullable="true"/>
+        <field name="retraite"      type="boolean"                      column="retraite"                nullable="true"/>
 
     </entity>
 </doctrine-mapping>
diff --git a/module/Application/src/Application/View/Helper/AgentStatutViewHelper.php b/module/Application/src/Application/View/Helper/AgentStatutViewHelper.php
new file mode 100644
index 0000000000000000000000000000000000000000..92cd89907b7bf8c08153341ab9f4d787cedb449f
--- /dev/null
+++ b/module/Application/src/Application/View/Helper/AgentStatutViewHelper.php
@@ -0,0 +1,52 @@
+<?php
+
+namespace Application\View\Helper;
+
+use Application\Entity\Db\AgentStatut;
+use Zend\View\Helper\AbstractHelper;
+
+class AgentStatutViewHelper extends AbstractHelper
+{
+
+    /**
+     * @param AgentStatut $statut
+     * @return string
+     */
+    public function render($statut, $args = [])
+    {
+        $texte  = '';
+
+        $texte .= '<div style="border: solid grey 1px; margin: 2px; padding: 2px; border-radius: 5px;">';
+
+        if (!isset($args['show_id']) || $args['show_id'] !== false) $texte .= '<span class="badge">'. $statut->getIdOrigine(). '</span> ';
+        if (!isset($args['show_agent']) || $args['show_agent'] !== false) $texte .= '<span class="badge">'. $statut->getAgent()->getDenomination(). '</span> ';
+        if (!isset($args['show_structure']) || $args['show_structure'] == true) $texte .= '<span class="badge">'. $statut->getStructure()->getLibelleLong(). '</span> ';
+        $texte .= ($statut->getDebut())?$statut->getDebut()->format('d/m/Y'):'---';
+        $texte .= '&rarr;';
+        $texte .= ($statut->getFin())?$statut->getFin()->format('d/m/Y'):'---';
+
+        $texte .= '<ul>';
+        if ($statut->isTitulaire())         $texte .='<li>Titulaire</li>';
+        if ($statut->isCdi())               $texte .='<li>C.D.I.</li>';
+        if ($statut->isCdd())               $texte .='<li>C.D.D.</li>';
+        if ($statut->isVacataire())         $texte .='<li>Vacataire</li>';
+        if ($statut->isEnseignant())        $texte .='<li>Enseignant</li>';
+        if ($statut->isAdministratif())     $texte .='<li>Administratif</li>';
+        if ($statut->isChercheur())         $texte .='<li>Chercheur</li>';
+        if ($statut->isEtudiant())          $texte .='<li>Etudiant</li>';
+        if ($statut->isAuditeurLibre())     $texte .='<li>Auditeur libre</li>';
+        if ($statut->isDoctorant())         $texte .='<li>Doctorant</li>';
+        if ($statut->isDetacheIn())         $texte .='<li>Détaché (in)</li>';
+        if ($statut->isDetacheOut())        $texte .='<li>Détaché (out)</li>';
+        if ($statut->isDispo())             $texte .='<li>Disponibilité</li>';
+        if ($statut->isHeberge())           $texte .='<li>Hébergé</li>';
+        if ($statut->isEmerite())           $texte .='<li>Émerite</li>';
+        if ($statut->isRetraite())          $texte .='<li>Retraité</li>';
+        $texte .= '</ul>';
+
+        $texte .= '</div>';
+
+        return $texte;
+
+    }
+}
\ No newline at end of file
diff --git a/module/Application/src/Application/View/Helper/AgentViewHelper.php b/module/Application/src/Application/View/Helper/AgentViewHelper.php
index 7190874122ee52f659dc7d492a4dd589430fa082..edaf50e3d8e64114bbeaa73330f5d19963f5bebf 100644
--- a/module/Application/src/Application/View/Helper/AgentViewHelper.php
+++ b/module/Application/src/Application/View/Helper/AgentViewHelper.php
@@ -49,6 +49,10 @@ class AgentViewHelper extends AbstractHelper
         $texte .= '<dd>'. $agent->getQuotite().'% </dd>';
         $texte .= '<dt> Status </dt>';
         $texte .= '<dd> '. $agent->getStatus() .'</dd>';
+        $texte .= '<dt> Statuts </dt> <br/>';
+        foreach ($agent->getStatutsActifs() as $statut) {
+            $texte .= '<dd> '. $this->getView()->agentStatut()->render($statut, ['show_agent' => false]) .'</dd>';
+        }
         $texte .= '<dt> Correspondance </dt>';
         $texte .= '<dd> '. $agent->getCorrespondance() .'</dd>';
         $texte .= '<dt> Corps </dt>';
diff --git a/module/Application/src/Application/View/Helper/FicheTypeViewHelper.php b/module/Application/src/Application/View/Helper/FicheTypeViewHelper.php
index 05f104fdd90f5acb5347e5d442d9b5a0c1d77595..4d42f63bb490d010cad0c547ffe39287e656a661 100644
--- a/module/Application/src/Application/View/Helper/FicheTypeViewHelper.php
+++ b/module/Application/src/Application/View/Helper/FicheTypeViewHelper.php
@@ -2,7 +2,6 @@
 
 namespace Application\View\Helper;
 
-use Application\Entity\Db\Application;
 use Application\Entity\Db\FicheMetierType;
 use Application\Entity\Db\FicheMetierTypeActivite;
 use Zend\View\Helper\AbstractHelper;