diff --git a/models/__init__.py b/models/__init__.py
index 87ab67c3dfca5efee9aa5ce3da69bd7642370d7e..044ad61586c0c81fb2dc1ca57c041085dd2b501b 100644
--- a/models/__init__.py
+++ b/models/__init__.py
@@ -10,6 +10,7 @@ from . import scop_contribution
 from . import scop_federation_activity
 from . import scop_liasse_fiscale
 from . import scop_membership
+from . import scop_partner_staff
 from . import scop_period
 from . import scop_questionnaire
 from . import scop_revision
diff --git a/models/res_partner.py b/models/res_partner.py
index fd98dcf89a98e4d1bcad0c320c2f9209e2e4a561..3f3397a5cb2ae6dde527905756107dda9376a82c 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -304,6 +304,12 @@ class ScopPartner(models.Model):
     is_up_to_date_ur = fields.Boolean("A jour cotisation UR")
 
     # Questionnaire
+    # Effectifs
+    staff_ids = fields.One2many(
+        comodel_name='scop.partner.staff',
+        inverse_name='partner_id',
+        string='Effectifs',)
+
     # Liste Ministère
     direccte_id = fields.Many2one(
         'res.partner',
@@ -713,12 +719,12 @@ class ScopPartner(models.Model):
         else:
             return False
 
-    @api.depends('questionnaire_ids', 'questionnaire_ids.staff_count',
-                 'questionnaire_ids.effective_date')
+    @api.depends('staff_ids', 'staff_ids.staff_count',
+                 'staff_ids.effective_date')
     @api.multi
     def _compute_last_effective(self):
         for partner in self:
-            lm = partner.questionnaire_ids.search(
+            lm = partner.staff_ids.search(
                 [['partner_id', '=', partner.id], ['staff_count', '>', 0]],
                 limit=1,
                 order='effective_date desc')
diff --git a/models/scop_partner_staff.py b/models/scop_partner_staff.py
new file mode 100644
index 0000000000000000000000000000000000000000..3780609aa7eefd34b95562a996748a5c9326b8f5
--- /dev/null
+++ b/models/scop_partner_staff.py
@@ -0,0 +1,41 @@
+# © 2020 Le Filament (<http://www.le-filament.com>)
+# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
+
+from odoo import models, fields
+
+
+class ScopPartnerStaff(models.Model):
+    _name = "scop.partner.staff"
+    _description = "Contributions"
+    _rec_name = 'partner_id'
+    _order = 'effective_date, partner_id'
+
+    partner_id = fields.Many2one(
+        comodel_name='res.partner',
+        string='Organisme',
+        domain=[('is_coopeartive', '=', True)],
+        ondelete='restrict',
+        required=True,
+        index=True)
+    user_id = fields.Many2one(
+        comodel_name='res.users',
+        string='Utilisateur',
+        ondelete='set null',
+        required=True,
+        default=lambda self: self.env.uid)
+    type_entry = fields.Selection([
+        ('manual', 'Manuel'),
+        ('ministry_list', 'Liste Ministère')],
+        string="Type",
+        default='manual')
+    effective_date = fields.Date(
+        string="Date",
+        default=fields.Date.today(),
+        required=True,)
+    staff_count = fields.Integer("Effectif (EF)", required=True,)
+    staff_shareholder_count = fields.Integer("Eff. Sociétaires (ES)")
+    staff_average = fields.Integer("Eff. Moyen (EM)")
+    questionnaire_id = fields.Many2one(
+        comodel_name='scop.questionnaire',
+        string='Questionnaire',
+        ondelete='cascade')
diff --git a/models/scop_questionnaire.py b/models/scop_questionnaire.py
index 38ced60658b82db3c2582ff3c507a07c244a0648..0bf23085536f4effbff73e53bb84f7b68247a30c 100644
--- a/models/scop_questionnaire.py
+++ b/models/scop_questionnaire.py
@@ -1,13 +1,13 @@
 # © 2019 Le Filament (<http://www.le-filament.com>)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
-from datetime import date
 from odoo import models, fields, api
 
 
 class ScopQuestionnaire(models.Model):
     _name = "scop.questionnaire"
     _description = "Questionnaire"
+    _rec_name = 'year'
 
     partner_id = fields.Many2one(
         comodel_name='res.partner',
@@ -25,6 +25,47 @@ class ScopQuestionnaire(models.Model):
     staff_shareholder_count = fields.Integer("Eff. Sociétaires (ES)")
     staff_average = fields.Integer("Eff. Moyen (EM)")
 
+    # ------------------------------------------------------
+    # Override ORM
+    # ------------------------------------------------------
+    # Création d'un ligne d'effectif
+    @api.model_create_multi
+    def create(self, vals_list):
+        questionnaire = super(ScopQuestionnaire, self).create(vals_list)
+        if questionnaire.effective_date:
+            staff_values = {
+                'partner_id': questionnaire.partner_id.id,
+                'user_id': self.env.uid,
+                'type_entry': 'ministry_list',
+                'effective_date': questionnaire.effective_date,
+                'staff_count': questionnaire.staff_count,
+                'staff_shareholder_count': questionnaire.staff_shareholder_count,
+                'staff_average': questionnaire.staff_average,
+                'questionnaire_id': questionnaire.id,
+            }
+            self.env['scop.partner.staff'].create(staff_values)
+        return questionnaire
+
+    # Mise à jour du questionnaire lors de la modification
+    @api.multi
+    def write(self, vals):
+        questionnaire = super(ScopQuestionnaire, self).write(vals)
+        staff = self.env['scop.partner.staff'].search([
+            ('questionnaire_id', '=', self.id)])
+        if staff:
+            if self.effective_date:
+                staff_values = {
+                    'partner_id': self.partner_id.id,
+                    'user_id': self.env.uid,
+                    'type_entry': 'ministry_list',
+                    'effective_date': self.effective_date,
+                    'staff_count': self.staff_count,
+                    'staff_shareholder_count': self.staff_shareholder_count,
+                    'staff_average': self.staff_average,
+                }
+                staff.write(staff_values)
+        return questionnaire
+
 
 class ScopQuestionnaireType(models.Model):
     _name = "scop.questionnaire.type"
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index 3f34bfa8e4ef441629d3c2af0d4387248c8a826d..aeea36997cbdb0efb230171ab04c703f8616649a 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -1,7 +1,7 @@
 id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
 access_contribution_group_user,access_contribution_group_user,model_scop_contribution,base.group_user,1,0,0,0
 access_liasse_fiscale_group_user,access_liasse_fiscale_group_user,model_scop_liasse_fiscale,base.group_user,1,0,0,0
-access_questionnaire_group_user,access_questionnaire_group_user,model_scop_questionnaire,base.group_user,1,1,1,1
+access_questionnaire_group_user,access_questionnaire_group_user,model_scop_questionnaire,base.group_user,1,0,0,0
 access_res_partner_certification,access_res_partner_certification,model_res_partner_certification,base.group_user,1,0,0,0
 access_res_partner_company_type,access_res_partner_company_type,model_res_partner_company_type,base.group_user,1,0,0,0
 access_res_partner_cooperative_form,access_res_partner_cooperative_form,model_res_partner_cooperative_form,base.group_user,1,0,0,0
@@ -54,6 +54,8 @@ admin_scop_membership_period,admin_scop_membership_period,model_scop_membership_
 admin_scop_membership_reason_end,admin_scop_membership_reason_end,model_scop_membership_reason_end,group_cg_administrator,1,1,1,1
 admin_scop_membership_type,admin_scop_membership_type,model_scop_membership_type,group_cg_administrator,1,1,1,1
 admin_scop_period,admin_scop_period,model_scop_period,group_cg_administrator,1,1,1,1
+administrative_scop_questionnaire,administrative_scop_questionnaire,model_scop_questionnaire,group_cg_administrative,1,1,1,1
+admin_scop_questionnaire,admin_scop_questionnaire,model_scop_questionnaire,group_cg_administrator,1,1,1,1
 admin_scop_questionnaire_type,admin_scop_questionnaire_type,model_scop_questionnaire_type,group_cg_administrator,1,1,1,1
 admin_scop_revision_format,admin_scop_revision_format,model_scop_revision_format,group_cg_administrator,1,1,1,1
 admin_union_regionale,admin_union_regionale,model_union_regionale,group_cg_administrator,1,1,1,1
@@ -69,3 +71,5 @@ access_scop_federation_com_activity,access_scop_federation_com_activity,model_sc
 admin_scop_federation_com_activity,admin_scop_federation_com_activity,model_scop_federation_com_activity,group_federation_com,1,1,1,1
 access_scop_federation_indus_activity,access_scop_federation_indus_activity,model_scop_federation_indus_activity,base.group_user,1,0,0,0
 admin_scop_federation_indus_activity,admin_scop_federation_indus_activity,model_scop_federation_indus_activity,group_federation_indus,1,1,1,1
+access_scop_partner_staff,access_scop_partner_staff,model_scop_partner_staff,base.group_user,1,1,1,0
+admin_scop_partner_staff,admin_scop_partner_staff,model_scop_partner_staff,group_cg_administrator,1,1,1,1
diff --git a/views/res_partner.xml b/views/res_partner.xml
index ecd76be4e42ddc7e3a7465bab97622668e5367ea..83c2dc367ca177df6043271e48528c9981bd042d 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -738,6 +738,18 @@
                                     </tree>
                                 </field>
                             </page>
+                            <page name='scop_staff' string="Effectifs" attrs="{'invisible': [('project_status', '!=', '6_suivi')]}">
+                                <field name="staff_ids" mode="tree" context="{'default_partner_id': active_id}">
+                                    <tree delete="false" default_order="effective_date desc" editable="top">
+                                        <field name="effective_date"/>
+                                        <field name="type_entry" readonly="1"/>
+                                        <field name="staff_count" attrs="{'readonly':[('type_entry','=','ministry_list')]}"/>
+                                        <field name="staff_shareholder_count" attrs="{'readonly':[('type_entry','=','ministry_list')]}"/>
+                                        <field name="staff_average" attrs="{'readonly':[('type_entry','=','ministry_list')]}"/>
+                                        <field name="user_id" readonly="1"/>
+                                    </tree>
+                                </field>
+                            </page>
                             <page name='scop_questionnaire' string="Listes Ministère" attrs="{'invisible': [('project_status', '!=', '6_suivi')]}">
                                 <group>
                                     <field name="direccte_id" widget="res_partner_many2one" options="{'no_create': True}"/>