diff --git a/models/res_partner.py b/models/res_partner.py
index 10e79788f4bbef169259374568ec1f9d8375143b..7bed4c57aae7eb0454b601e11a1001c541bd2539 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -2,6 +2,7 @@
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
 from odoo import api, models
+from odoo.exceptions import UserError
 from odoo.addons.cmis_field import fields
 
 ALFRESCO_TRACKED_FIELDS = ['name', 'id', 'siret', 'member_number', 'ur_id']
@@ -59,21 +60,19 @@ class AlfodooResPartner(models.Model):
         la raison sociale, le nom, le siret, l'id Odoo ou le
         num adhérent
         """
-        tracked_fields = self.fields_get(ALFRESCO_TRACKED_FIELDS)
-        # Dict des valeurs initiales des champs présents dans TRACKED_FIELDS
-        initial_values = dict(
-            (record.id, dict(
-                (key, getattr(record, key)) for key in tracked_fields)) for record in self.filtered('is_cooperative'))
+        change_fields = vals.keys()
+        # check intersection
+        is_alfresco_field = [
+            value for value in change_fields if value in ALFRESCO_TRACKED_FIELDS]
+
+
         # Ecriture des nouvelles valeurs
         result = super(AlfodooResPartner, self).write(vals)
-        # Dict des nouvelles valeurs
-        new_values = dict(
-            (record.id, dict(
-                (key, getattr(record, key)) for key in tracked_fields)) for record in self.filtered('is_cooperative'))
+
         # Check des modifications sur les coopératives présentes dans RIGA
         for record in self:
             if record.is_cooperative and record.partner_cmis_folder:
-                if new_values[record.id] != initial_values[record.id]:
+                if is_alfresco_field:
                     backend = self._fields['partner_cmis_folder']
                     properties = self._get_folder_properties(
                         record, backend).get(record.id)
@@ -90,5 +89,22 @@ class AlfodooResPartner(models.Model):
                 backend = self._fields['partner_cmis_folder']
                 folder = backend.get_cmis_object(partner)
                 folder.delete()
+                partner.partner_cmis_folder = False
 
         return super(AlfodooResPartner, self).unlink()
+
+    # ------------------------------------------------------
+    # Common Functions
+    # ------------------------------------------------------
+    @api.multi
+    def create_cmis_folder(self):
+        for partner in self:
+            if partner.partner_cmis_folder:
+                raise UserError("Le partenaire a déjà un dossier Alfresco associé")
+            else:
+                try:
+                    partner._fields['partner_cmis_folder'].create_value(
+                        partner)
+                    return partner.partner_cmis_folder
+                except Exception as e:
+                    return e.name
\ No newline at end of file