diff --git a/src/Octopus/Entity/Db/Individu.php b/src/Octopus/Entity/Db/Individu.php
index c378e7edb7864bdb1f26283ab2fc12d09946692f..e8fcfd3f26733b08af699eed1a3169327108eea4 100644
--- a/src/Octopus/Entity/Db/Individu.php
+++ b/src/Octopus/Entity/Db/Individu.php
@@ -223,7 +223,12 @@ class Individu {
 
     public function __toString()
     {
-        $texte  = $this->getPrenom(). " " . $this->getNomUsage();
+        $texte  = $this->getPrenom();
+        if ($this->getNomUsage()) $texte .= " " . $this->getNomUsage();
+        if ($this->getNomUsage() != $this->getNomFamille()) {
+            if ($this->getNomUsage()) $texte .= "-"; else $texte .= " ";
+            $texte .= $this->getNomFamille();
+        }
         return $texte;
     }
 
diff --git a/src/Octopus/Entity/Db/StructureType.php b/src/Octopus/Entity/Db/StructureType.php
index 13c6a9c24a68dd3597f8401c22f21673a35d61fe..d5b30a94dec97e807c6673a8e0b85a2b34ec50cc 100644
--- a/src/Octopus/Entity/Db/StructureType.php
+++ b/src/Octopus/Entity/Db/StructureType.php
@@ -4,17 +4,17 @@ namespace Octopus\Entity\Db;
 
 class StructureType {
 
-    const TYPE_ANTN = 'Antenne';
-    const TYPE_BIBL	= 'Bibliothèque';
-    const TYPE_COMP	= 'Composante';
-    const TYPE_DEPT	= 'Département';
-    const TYPE_ED	= 'École doctorale';
-    const TYPE_ETAB	= 'Établissement';
-    const TYPE_FICT	= 'Structure fictive';
-    const TYPE_SCEN	= 'Service central';
-    const TYPE_SCOM	= 'Service commun';
-    const TYPE_SREC	= 'Structure de recherche';
-    const TYPE_SSAD	= 'Sous-structure administrative';
+    const TYPE_ANTN = 'ANTN';
+    const TYPE_BIBL	= 'BIBL';
+    const TYPE_COMP	= 'COMP';
+    const TYPE_DEPT	= 'DEPT';
+    const TYPE_ED	= 'ED';
+    const TYPE_ETAB	= 'ETAB';
+    const TYPE_FICT	= 'FICT';
+    const TYPE_SCEN	= 'SCEN';
+    const TYPE_SCOM	= 'SCOM';
+    const TYPE_SREC	= 'SREC';
+    const TYPE_SSAD	= 'SSAD';
 
     /** @var integer */
     private $id;
diff --git a/src/Octopus/Service/Individu/IndividuService.php b/src/Octopus/Service/Individu/IndividuService.php
index 077d64768ef97221f4f6a80d40bdad3ae6e530a5..b8c414ad32a5b22f0d8991a3409a8d4631c018e2 100644
--- a/src/Octopus/Service/Individu/IndividuService.php
+++ b/src/Octopus/Service/Individu/IndividuService.php
@@ -56,7 +56,7 @@ class IndividuService {
     {
         $qb = $this->getEntityManager()->getRepository(Individu::class)->createQueryBuilder('individu')
             ->addSelect('source')->join('individu.cSource', 'source')
-            ->andWhere('individu.nomUsage LIKE :search')
+            ->andWhere('individu.nomUsage LIKE :search OR individu.nomFamille LIKE :search')
             ->setParameter('search', '%'.$term.'%')
             ->orderBy('individu.nomUsage, individu.prenom')
         ;
@@ -70,6 +70,30 @@ class IndividuService {
         return $result;
     }
 
+    /**
+     * @param string $term
+     * @return Individu[]
+     */
+    public function getEtudiantsByTerm($term, $sourceCode = null)
+    {
+        $qb = $this->getEntityManager()->getRepository(Individu::class)->createQueryBuilder('individu')
+            ->join('individu.affectations', 'affectation')
+            ->andWhere('LOWER(CONCAT(individu.nomUsage, \' \' , individu.prenom, \' \', individu.nomUsage, \' \')) 
+                     OR LOWER(CONCAT(individu.nomFamille, \' \' , individu.prenom, \' \', individu.nomFamille, \' \'))
+                     OR individu.cEtu LIKE :term
+                    ')
+            ->andWhere('affectation.type = :type')
+            ->setParameter('search', '%'.strtolower($term).'%')
+            ->setParameter('term', $term.'%')
+            ->setParameter('type', 5)
+            ->orderBy('individu.nomUsage, individu.prenom')
+        ;
+
+
+        $result = $qb->getQuery()->getResult();
+        return $result;
+    }
+
     /**
      * @param integer $numeroEtudiant
      * @return Individu
diff --git a/src/Octopus/Service/Structure/StructureService.php b/src/Octopus/Service/Structure/StructureService.php
index 6c8bb619b2f6e871d1f41466e2bf4183aad54191..684770dcaadb8e9640ddddc4a36880aa64a2d9a7 100644
--- a/src/Octopus/Service/Structure/StructureService.php
+++ b/src/Octopus/Service/Structure/StructureService.php
@@ -46,6 +46,25 @@ class StructureService {
         return $result;
     }
 
+    /**
+     * @param string $code
+     * @return StructureType
+     */
+    public function getStructureTypeByCode($code)
+    {
+        $qb = $this->getEntityManager()->getRepository(StructureType::class)->createQueryBuilder('type')
+            ->andWhere('type.code  :code')
+            ->setParameter('code', $code)
+        ;
+
+        try {
+            $result = $qb->getQuery()->getOneOrNullResult();
+        } catch (NonUniqueResultException $e) {
+            throw new RuntimeException("Plusieurs StructureType partagent le même code [".$code."].");
+        }
+        return $result;
+    }
+
     /**
      * @param string $term
      * @return StructureType[]
@@ -130,10 +149,14 @@ class StructureService {
      */
     public function getStructuresByType($type, $order = null)
     {
-        $qb = $this->getEntityManager()->getRepository(Structure::class)->createQueryBuilder('type')
+        /** @var StructureType $structureType */
+        $structureType = $this->getStructureTypeByCode($type);
+        var_dump($structureType);
+
+        $qb = $this->getEntityManager()->getRepository(Structure::class)->createQueryBuilder('structure')
             ->addSelect('type')->join('structure.type', 'type')
             ->andWhere('type.code = :type')
-            ->setParameter('type', $type)
+            ->setParameter('type', $structureType->getId())
         ;
 
         if ($order) $qb = $qb->orderBy('type.'.$order);