diff --git a/models/api_alfresco.py b/models/api_alfresco.py
index e1d82ee9a22aedef57d62cba50b348b0263c72c5..0c45cc5f842dac07b07f1f0d57e963b9ee04de56 100644
--- a/models/api_alfresco.py
+++ b/models/api_alfresco.py
@@ -18,23 +18,17 @@ _logger = logging.getLogger(__name__)
 
 
 class CgscopAlfresco(models.AbstractModel):
-    """Appelle l'API alfresco et implémente les fonctions suivantes :
-
-    alfresco_list_docs : liste les documents
-    """
-
     _name = "cgscop.alfresco"
     _description = "Connecteur Alfresco"
 
     def alfresco_get_by_url(self, url, call_type, json=None, files=None):
-        """Création de la requête à Alfresco
-
+        """
+        Création de la requête à Alfresco
         :param url: action API Alfresco
         :param call_type: post/get
         :param json: data to post
         :param files: byte to upload
         :param data: data to post
-
         @return response au format JSON
         """
         _logger.info("Calling %s" % url)
@@ -81,6 +75,7 @@ class CgscopAlfresco(models.AbstractModel):
                     timeout=15,
                 )
         except Exception as err:
+            print(err)
             _logger.warning(
                 "Erreur de connexion. URL: %s",
                 err.__str__(),
@@ -103,17 +98,20 @@ class CgscopAlfresco(models.AbstractModel):
 
         return response
 
-    # Get Methods
+    # ------------------------------------------------------
+    # API GET Methods
+    # ------------------------------------------------------
     def alfresco_list_docs(self, node_id):
-        """Liste les documents pour un organisme (raison sociale)
-        :param name: raison sociale de la structure
+        """
+        Liste les documents pour un organisme (raison sociale)
+        :param node_id: noderef du dossier
         """
         url = "/alfresco/s/erp/listedocuments?nodeId=" + node_id
         return self.alfresco_get_by_url(url=url, call_type="get").json()
 
     def alfresco_list_type(self):
-        """Liste le valeurs du formulaire de dépôt d'un nouveau document
-
+        """
+        Liste les valeurs du formulaire de dépôt d'un nouveau document
         @return: dict des valeurs possibles pour période, validité, type
         """
         url = "/alfresco/s/api/properties?nsp=crm&n=document"
@@ -126,15 +124,17 @@ class CgscopAlfresco(models.AbstractModel):
         }
 
     def alfresco_get_doc(self, nodeRef):
-        """Retourne le contenu d'un document en base64
+        """
+        Retourne le contenu d'un document en base64
         :param nodeRef: id Alfresco
         """
         url = "/alfresco/s/document/" + nodeRef
         return self.alfresco_get_by_url(url=url, call_type="get").json()
 
     def alfresco_get_ticket(self, username):
-        """Liste les documents pour un organisme (raison sociale)
-        :param username: username de l'utilisateur
+        """
+        Récupère le ticket de session de l'utilisateur
+        :param username : username de l'utilisateur
         """
         url = "/alfresco/s/authentifier-entantque?compte=" + username
         result = self.alfresco_get_by_url(url=url, call_type="get")
@@ -142,12 +142,13 @@ class CgscopAlfresco(models.AbstractModel):
         root = tree.getroot()
         return root[0].text
 
-    # Post Methods
+    # ------------------------------------------------------
+    # API POST Methods
+    # ------------------------------------------------------
     def alfresco_create_organism(self, partner):
-        """Création d'un dossier Organisme
-
+        """
+        Création d'un dossier Organisme
         :param partner: objet Odoo créé
-
         @return: id Alfresco (nodeRef) du dossier
         """
         url = "/alfresco/s/erp/createdossierorganisme"
@@ -163,11 +164,10 @@ class CgscopAlfresco(models.AbstractModel):
         )
 
     def alfresco_update_organism(self, partner):
-        """Mise à jour d'un dossier Organisme
-
-        :param partner: objet Odoo créé
-
-        @return: id Alfresco (nodeRef) du dossier
+        """
+        Mise à jour d'un dossier Organisme
+        :param partner : objet Odoo créé
+        @return : id Alfresco (nodeRef) du dossier
         """
         url = "/alfresco/s/erp/updatedossierorganisme/" + partner.id_alfresco
         json = {
@@ -181,31 +181,54 @@ class CgscopAlfresco(models.AbstractModel):
             self.alfresco_get_by_url(url=url, call_type="post", json=json).json()
         )
 
-    # Delete Methods
-    def alfresco_remove(self, nodeRef):
-        """Supprime un document d'Alfresco
-        :param id_doc: id du document Alfresco
+    def push_alfresco_file_api(self, file, name, metadata=None, folder=None):
         """
-        url = "/alfresco/s/document/" + nodeRef
-        return self.alfresco_get_by_url(url=url, call_type="delete").json()
+        Ajoute un fichier sur la GED Alfresco
+        """
+        if not folder:
+            raise exceptions.ValidationError(
+                _("Le dossier parent n'existe pas ou n'est pas renseigné !")
+            )
 
-    # Others
-    def get_allowed_values(self, list_type, value):
-        """Fonction qui itère dans l'objet retourné"""
-        list_selected = list(filter(lambda i: i["name"] == value, list_type))
-        return (
-            list_selected[0]
-            .get("constraints")[0]
-            .get("parameters")[0]
-            .get("allowedValues")
+        url = (
+            "/alfresco/api/-default-/public/alfresco/versions/1/nodes/%s/children?majorVersion=true"
+            % folder
         )
+        _logger.info("Chargement document Alfresco : %s" % name)
 
-    def get_nodeRef(self, result):
-        """Renvoie la référence Alfresco d'un JSON contenant au premier
-        niveau la clé "nodeRef" puis supprime le chemin du workspace
+        content_type = "multipart/form-data"
+
+        params = {
+            "name": name,
+            "nodeType": "cmis:document",
+            "overwrite": True,
+            "properties": metadata,
+        }
+        files = {"filedata": (name, file, content_type, params)}
+        return self.alfresco_get_by_url(url=url, call_type="post", files=files).json()
+
+    def alfresco_query_search(self, query=None):
         """
-        return result.get("nodeRef", "").replace("workspace://SpacesStore/", "")
+        Appelle l'API Search Alfresco
+        :params query: dictionnaire de la recherche souhaitée
+        """
+        url = "/alfresco/api/-default-/public/search/versions/1/search"
+        return self.alfresco_get_by_url(url=url, call_type="post", json=query).json()
+
+    # ------------------------------------------------------
+    # API DELETE Methods
+    # ------------------------------------------------------
+    def alfresco_remove(self, nodeRef):
+        """
+        Supprime un document d'Alfresco
+        :param nodeRef : nodeRef du document Alfresco
+        """
+        url = "/alfresco/s/document/" + nodeRef
+        return self.alfresco_get_by_url(url=url, call_type="delete").json()
 
+    # ------------------------------------------------------
+    # CMIS Methods
+    # ------------------------------------------------------
     def push_alfresco_file(self, file, name, metadata=None, backend=None, folder=None):
         """
         Ajoute un fichier sur la GED Alfresco
@@ -257,29 +280,24 @@ class CgscopAlfresco(models.AbstractModel):
         except Exception as e:
             raise exceptions.ValidationError(e)
 
-    def push_alfresco_file_api(self, file, name, metadata=None, folder=None):
+    # ------------------------------------------------------
+    # Common function
+    # ------------------------------------------------------
+    def get_allowed_values(self, list_type, value):
         """
-        Ajoute un fichier sur la GED Alfresco
-        @return: fonction get_partner_files() de res.partner
+        Fonction qui itère dans l'objet retourné
         """
-        if not folder:
-            raise exceptions.ValidationError(
-                _("Le dossier parent n'existe pas ou n'est pas renseigné !")
-            )
-
-        url = (
-            "/alfresco/api/-default-/public/alfresco/versions/1/nodes/%s/children?majorVersion=true"
-            % folder
+        list_selected = list(filter(lambda i: i["name"] == value, list_type))
+        return (
+            list_selected[0]
+            .get("constraints")[0]
+            .get("parameters")[0]
+            .get("allowedValues")
         )
-        _logger.info("Chargement document Alfresco : %s" % name)
-
-        content_type = "multipart/form-data"
 
-        params = {
-            "name": name,
-            "nodeType": "cmis:document",
-            "overwrite": True,
-            "properties": metadata,
-        }
-        files = {"filedata": (name, file, content_type, params)}
-        return self.alfresco_get_by_url(url=url, call_type="post", files=files).json()
+    def get_nodeRef(self, result):
+        """
+        Renvoie la référence Alfresco d'un JSON contenant au premier
+        niveau la clé "nodeRef" puis supprime le chemin du workspace
+        """
+        return result.get("nodeRef", "").replace("workspace://SpacesStore/", "")