diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 732d0c4a644eb444d6b4385643ff32fab19fab52..4acca684ec8c5cda7b3ecd21b9e568ab03d57e8c 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -6,6 +6,8 @@ exclude: |
   ^setup/|/static/description/index\.html$|
   # We don't want to mess with tool-generated files
   .svg$|/tests/([^/]+/)?cassettes/|^.copier-answers.yml$|^.github/|
+  # Maybe reactivate this when all README files include prettier ignore tags?
+  ^README\.md$|
   # Library files can have extraneous formatting (even minimized)
   /static/(src/)?lib/|
   # Repos using Sphinx to generate docs don't need prettying
@@ -25,8 +27,13 @@ repos:
         entry: found forbidden files; remove them
         language: fail
         files: "\\.rej$"
+      - id: en-po-files
+        name: en.po files cannot exist
+        entry: found a en.po file
+        language: fail
+        files: '[a-zA-Z0-9_]*/i18n/en\.po$'
   - repo: https://github.com/oca/maintainer-tools
-    rev: 7d8a9f9ad73db0976fb03cbee43d953bc29b89e9
+    rev: ab1d7f6
     hooks:
       # update the NOT INSTALLABLE ADDONS section above
       - id: oca-update-pre-commit-excluded-addons
@@ -48,7 +55,7 @@ repos:
     hooks:
       - id: black
   - repo: https://github.com/pre-commit/mirrors-prettier
-    rev: v2.6.2
+    rev: v2.1.2
     hooks:
       - id: prettier
         name: prettier (with plugin-xml)
@@ -59,7 +66,7 @@ repos:
           - --plugin=@prettier/plugin-xml
         files: \.(css|htm|html|js|json|jsx|less|md|scss|toml|ts|xml|yaml|yml)$
   - repo: https://github.com/pre-commit/mirrors-eslint
-    rev: v8.15.0
+    rev: v7.8.1
     hooks:
       - id: eslint
         verbose: true
@@ -67,7 +74,7 @@ repos:
           - --color
           - --fix
   - repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v4.2.0
+    rev: v3.2.0
     hooks:
       - id: trailing-whitespace
         # exclude autogenerated files
@@ -89,37 +96,33 @@ repos:
       - id: mixed-line-ending
         args: ["--fix=lf"]
   - repo: https://github.com/asottile/pyupgrade
-    rev: v2.32.1
+    rev: v2.7.2
     hooks:
       - id: pyupgrade
         args: ["--keep-percent-format"]
   - repo: https://github.com/PyCQA/isort
-    rev: 5.10.1
+    rev: 5.12.0
     hooks:
       - id: isort
         name: isort except __init__.py
         args:
           - --settings=.
         exclude: /__init__\.py$
-  - repo: https://gitlab.com/PyCQA/flake8
-    rev: 3.9.2
+  - repo: https://github.com/PyCQA/flake8
+    rev: 3.8.3
     hooks:
       - id: flake8
         name: flake8
         additional_dependencies: ["flake8-bugbear==20.1.4"]
-  - repo: https://github.com/PyCQA/pylint
-    rev: v2.11.1
+  - repo: https://github.com/OCA/pylint-odoo
+    rev: 7.0.2
     hooks:
-      - id: pylint
+      - id: pylint_odoo
         name: pylint with optional checks
         args:
           - --rcfile=.pylintrc
           - --exit-zero
         verbose: true
-        additional_dependencies: &pylint_deps
-          - pylint-odoo==5.0.5
-      - id: pylint
-        name: pylint with mandatory checks
+      - id: pylint_odoo
         args:
           - --rcfile=.pylintrc-mandatory
-        additional_dependencies: *pylint_deps
diff --git a/models/scop_instance.py b/models/scop_instance.py
index 884b46ef6b8f01c0375d0eaaeb683ff06ae4ef92..8ad09204d761288e705181fe8fe2744c82aae89d 100644
--- a/models/scop_instance.py
+++ b/models/scop_instance.py
@@ -76,29 +76,12 @@ class ScopInstance(models.Model):
         - datas_stats_ur : list of dict per ur
         - datas_stats_global : dict of stats
         """
-        partners = self._get_partners()
-
-        # We use LM instead of res_partner to get more info ...
-        # ... fields of res_partner are on LM (delegate = true)
-        lm_ids = list()
-        for partner in partners:
-            lm_partner = partner.get_lm_adhesion()
-            lm_ids.append(lm_partner.id)
-
-        partners_lm = self.env["scop.liste.ministere"].browse(lm_ids)
+        partner_ids = self._get_partners()
 
-        ur_global = partners_lm.read_group(
-            domain=[("id", "in", partners_lm.ids)],
-            fields=["ur_id"],
-            groupby=["ur_id", "eff_tt", "eff_sal_assoc"],
-            orderby="ur_id",
-            lazy=True,
-        )
-        datas_stats_global = {
-            "ur_global": ur_global,
-            "partners": partners_lm,
+        return {
+            "ur_ids": partner_ids.mapped("ur_id").sorted("id"),
+            "partner_ids": partner_ids,
         }
-        return datas_stats_global
 
     def _get_partners(self):
         """
@@ -149,10 +132,10 @@ class ScopInstance(models.Model):
         :return:
         """
         partners = self._get_partners().filtered(
-            lambda p: p.project_status == "6_suivi"
+            lambda p: p.membership_status == "member"
         )
         if len(partners) < 1:
-            raise UserError(_('Aucune coopérative n\'est en statut "suivi"'))
+            raise UserError(_('Aucune coopérative n\'est en statut "membre"'))
         return self.create_report_adhesion(partners)
 
     def create_report_adhesion_per_ur(self):
@@ -161,10 +144,10 @@ class ScopInstance(models.Model):
         :return:
         """
         partners = self._get_partners().filtered(
-            lambda i: i.project_status == "6_suivi"
+            lambda i: i.membership_status == "member"
         )
         if len(partners) < 1:
-            raise UserError(_('Aucune coopérative n\'est en statut "suivi"'))
+            raise UserError(_('Aucune coopérative n\'est en statut "membre"'))
         urs = partners.mapped("ur_id")
         wizard = self.env["scop.instance.report.wizard"].create(
             {
@@ -188,10 +171,10 @@ class ScopInstance(models.Model):
         Open wizard to send mail adhésions
         """
         partners = self._get_partners().filtered(
-            lambda i: i.project_status == "6_suivi"
+            lambda i: i.membership_status == "member"
         )
         if len(partners) < 1:
-            raise UserError(_('Aucune coopérative n\'est en statut "suivi"'))
+            raise UserError(_('Aucune coopérative n\'est en statut "membre"'))
         wizard = self.env["scop.instance.mail.wizard"].create({})
 
         return {
@@ -260,7 +243,7 @@ class ScopInstance(models.Model):
         partners_to_validate = self.env.context.get(
             "partners_to_validate",
             self.instance_partner_ids.filtered(
-                lambda p: p.state == "positive" and p.project_status == "5_cg"
+                lambda p: p.state == "positive" and p.membership_status == "soumis_cg"
             ),
         )
         validated_partners = list()
@@ -278,9 +261,7 @@ class ScopInstance(models.Model):
                         ],
                     )
                     if membership_period:
-                        membership_period.update(
-                            {"start": r.statistic_membership_date}
-                        )
+                        membership_period.update({"start": r.statistic_membership_date})
                     # log success
                     validated_partners.append(partner.id)
                     r.is_success = True
@@ -347,6 +328,4 @@ class ScopInstance(models.Model):
             membership_period_ids = partner.partner_id.membership_period_ids.filtered(
                 lambda p: p.start == self.date.date() and not p.end
             )
-            membership_period_ids.update(
-                {"start": self.date_membership}
-            )
+            membership_period_ids.update({"start": self.date_membership})
diff --git a/models/scop_instance_partner.py b/models/scop_instance_partner.py
index ec4c73002e79575637518732375af73b66873df3..142dfd2c1be2f9c77b3bcfb01e57f335be67c3f5 100644
--- a/models/scop_instance_partner.py
+++ b/models/scop_instance_partner.py
@@ -40,6 +40,9 @@ class ScopInstancePartner(models.Model):
     project_status = fields.Selection(
         string="Statut projet", related="partner_id.project_status"
     )
+    membership_status = fields.Selection(
+        string="Statut d'adhésion", related="partner_id.membership_status"
+    )
 
     state = fields.Selection(
         string="Avis",
@@ -82,13 +85,13 @@ class ScopInstancePartner(models.Model):
     def _compute_amount_adhesion(self):
         for r in self:
             if r.state == "positive":
-                lm = (
-                    r.partner_id.lm_adhesion_id
-                    if r.partner_id.lm_adhesion_id
-                    else r.partner_id.get_lm_adhesion(r.instance_id.date.year)
+                staff_line = r.partner_id.staff_ids.filtered(
+                    lambda s: s.type_entry == "membership"
+                ).sorted(key="effective_date", reverse=True)
+                staff_number = staff_line[0].staff_count if staff_line else 0
+                r.amount_adhesion = r.partner_id.get_theorical_amount_adhesion(
+                    staff_number
                 )
-                effectif = lm.eff_tt
-                r.amount_adhesion = r.partner_id.get_theorical_amount_adhesion(effectif)
             else:
                 r.amount_adhesion = 0
 
diff --git a/models/union_regionale.py b/models/union_regionale.py
index 02c88463c678e7e21ab0b4d5367da3e14db57ef6..56c149abc9a64c8600c793111887a6956bef3759 100644
--- a/models/union_regionale.py
+++ b/models/union_regionale.py
@@ -19,7 +19,7 @@ class UnionRegionale(models.Model):
             self.env["scop.instance"]
             .browse(self.env.context.get("active_id"))
             .mapped("instance_partner_ids")
-            .filtered(lambda i: i.project_status == "6_suivi")
+            .filtered(lambda i: i.membership_status == "member")
             .mapped("partner_id")
         )
         partners_ur = partners.filtered(lambda p: p.ur_id == self)
diff --git a/report/report_scop_instance_adhesion.xml b/report/report_scop_instance_adhesion.xml
index 7b8067ba6da6fd1affc1e5008a963aee63579501..11087a5b27de2f025b1c918aa862771c6f23f808 100644
--- a/report/report_scop_instance_adhesion.xml
+++ b/report/report_scop_instance_adhesion.xml
@@ -8,8 +8,8 @@
             <t t-call="web.external_layout">
                 <t t-set="o" t-value="o.with_context(lang='fr')" />
                 <t t-set="datas" t-value="o.get_report_datas()" />
-                <t t-set="partners" t-value="datas.get('partners')" />
-                <t t-set="ur_ids" t-value="partners.mapped('ur_id').sorted('id')" />
+                <t t-set="partners" t-value="datas.get('partner_ids')" />
+                <t t-set="ur_ids" t-value="datas.get('ur_ids')" />
 
                 <div class="page">
                     <div class="instance-layout">
@@ -34,6 +34,9 @@
                                 <h3 class="mb32">
                                     Global par Union Régionale
                                 </h3>
+                                <t t-esc="datas" />
+                                <t t-esc="ur_ids" />
+                                <t t-esc="partners" />
                                 <div
                                     class="row"
                                     style="font-weight: 700; font-size: 16px;"
@@ -44,6 +47,8 @@
                                     <div class="col-2 text-center">Associés</div>
                                 </div>
                                 <hr />
+                                <t t-set="total_staff_count" t-value="0" />
+                                <t t-set="total_shareholder_count" t-value="0" />
                                 <t t-foreach="ur_ids" t-as="ur">
                                     <div style="page-break-inside: avoid;">
                                         <div
@@ -56,12 +61,30 @@
                                             <div class="col-3 text-center"><t
                                                     t-esc="len(partners.filtered(lambda p: p.ur_id.id == ur.id))"
                                                 /></div>
-                                                <div class="col-3 text-center"><t
-                                                    t-esc="sum(partners.filtered(lambda p: p.ur_id.id == ur.id).mapped('eff_tt'))"
-                                                /></div>
-                                                <div class="col-2 text-center"><t
-                                                    t-esc="sum(partners.filtered(lambda p: p.ur_id.id ==  ur.id).mapped('eff_sal_assoc'))"
-                                                /></div>
+                                                <div class="col-3 text-center">
+                                                    <t
+                                                    t-set="total_staff_ur"
+                                                    t-value="sum(partners.filtered(lambda p: p.ur_id.id == ur.id).mapped(lambda p: p.get_last_membership_staff().staff_count if p.get_last_membership_staff() else 0))"
+                                                />
+                                                    <t t-esc="total_staff_ur" />
+                                                    <t
+                                                    t-set="total_staff_count + total_staff_ur"
+                                                    t-value="total_staff_ur"
+                                                />
+                                                </div>
+                                                <div class="col-2 text-center">
+                                                    <t
+                                                    t-set="total_staff_shareholder_ur"
+                                                    t-value="sum(partners.filtered(lambda p: p.ur_id.id == ur.id).mapped(lambda p: p.get_last_membership_staff().staff_shareholder_count if p.get_last_membership_staff() else 0))"
+                                                />
+                                                    <t
+                                                    t-esc="total_staff_shareholder_ur"
+                                                />
+                                                    <t
+                                                    t-set="total_staff_shareholder_count + total_staff_ur"
+                                                    t-value="total_staff_ur"
+                                                />
+                                                </div>
                                         </div>
                                         <t
                                             t-set="type_coop"
@@ -76,10 +99,10 @@
                                                         t-esc="len(partners.filtered(lambda p: p.ur_id.id == ur.id and p.cooperative_form_id.id == type_id.id))"
                                                     /></div>
                                                 <div class="col-3 text-center"><t
-                                                        t-esc="sum(partners.filtered(lambda p: p.ur_id.id == ur.id and p.cooperative_form_id.id == type_id.id).mapped('eff_tt'))"
+                                                        t-esc="sum(partners.filtered(lambda p: p.ur_id.id == ur.id and p.cooperative_form_id.id == type_id.id).mapped(lambda p: p.get_last_membership_staff().staff_count if p.get_last_membership_staff() else 0))"
                                                     /></div>
                                                 <div class="col-2 text-center"><t
-                                                        t-esc="sum(partners.filtered(lambda p: p.ur_id.id == ur.id and p.cooperative_form_id.id == type_id.id).mapped('eff_sal_assoc'))"
+                                                        t-esc="sum(partners.filtered(lambda p: p.ur_id.id == ur.id and p.cooperative_form_id.id == type_id.id).mapped(lambda p: p.get_last_membership_staff().staff_shareholder_count if p.get_last_membership_staff() else 0))"
                                                     /></div>
                                             </div>
                                         </t>
@@ -95,10 +118,10 @@
                                             t-esc="len(partners)"
                                         /></div>
                                     <div class="col-3 text-center"><t
-                                            t-esc="sum(partners.mapped('eff_tt'))"
+                                            t-esc="total_staff_count"
                                         /></div>
                                     <div class="col-2 text-center"><t
-                                            t-esc="sum(partners.mapped('eff_sal_assoc'))"
+                                            t-esc="total_staff_shareholder_count"
                                         /></div>
                                 </div>
                             </div>
@@ -157,16 +180,28 @@
                                                     </tr>
                                                 </thead>
                                                 <tbody>
+                                                    <t
+                                                    t-set="staff_count"
+                                                    t-value="0"
+                                                />
+                                                    <t
+                                                    t-set="staff_shareholder_count"
+                                                    t-value="0"
+                                                />
                                                     <t
                                                     t-foreach="partner_ids"
                                                     t-as="partner"
                                                 >
+                                                        <t
+                                                        t-set="staff_id"
+                                                        t-value="partner.get_last_membership_staff()"
+                                                    />
                                                         <tr>
                                                             <td><t
                                                                 t-esc="partner.cooperative_form_id.name"
                                                             /></td>
                                                             <td><t
-                                                                t-esc="partner.partner_id.name"
+                                                                t-esc="partner.name"
                                                             /></td>
                                                             <td><t
                                                                 t-esc="partner.zip"
@@ -175,28 +210,38 @@
                                                                 t-esc="partner.city"
                                                             /></td>
                                                             <td><t
-                                                                t-esc="partner.eff_tt"
-                                                            /></td>
+                                                                t-esc="staff_id.staff_count if staff_id else 0"
+                                                            />
+                                                                <t
+                                                                t-set="staff_count"
+                                                                t-value="staff_shareholder_count + (staff_id.staff_count if staff_id else 0)"
+                                                            />
+                                                            </td>
                                                             <td><t
-                                                                t-esc="partner.eff_sal_assoc"
-                                                            /></td>
+                                                                t-esc="staff_id.staff_shareholder_count if staff_id else 0"
+                                                            />
+                                                                <t
+                                                                t-set="staff_shareholder_count"
+                                                                t-value="staff_shareholder_count + (staff_id.staff_shareholder_count if staff_id else 0)"
+                                                            />
+                                                            </td>
                                                             <td><t
-                                                                t-esc="partner.cap_tt"
+                                                                t-esc="partner.capital"
                                                                 t-options="{'widget': 'float', 'precision': 0}"
                                                             /> €</td>
                                                             <td><t
-                                                                t-esc="partner.scop_liasse_fiscale_id.revenue_cg"
+                                                                t-esc="partner.liasse_membership_id.revenue_cg"
                                                                 t-options="{'widget': 'float', 'precision': 0}"
                                                             /> €</td>
                                                             <td><t
-                                                                t-esc="partner.scop_liasse_fiscale_id.av_cg"
+                                                                t-esc="partner.liasse_membership_id.av_cg"
                                                                 t-options="{'widget': 'float', 'precision': 0}"
                                                             /> €</td>
                                                             <td><t
-                                                                t-esc="partner.creation_origin_id"
+                                                                t-esc="partner.creation_origin_id.name"
                                                             /></td>
                                                             <td><t
-                                                                t-esc="partner.code_naf"
+                                                                t-esc="partner.naf_id.name"
                                                             /></td>
                                                             <td><t
                                                                 t-esc="partner.social_object"
@@ -205,7 +250,7 @@
                                                                 t-esc="partner.project_federation.name"
                                                             /></td>
                                                             <td><t
-                                                                t-esc="partner.partner_company_type_id"
+                                                                t-esc="partner.partner_company_type_id.name"
                                                             /></td>
                                                         </tr>
                                                     </t>
@@ -219,10 +264,10 @@
                                                             t-esc="len(partner_ids)"
                                                         /> coop(s)</td>
                                                         <td><t
-                                                            t-esc="sum(list(partner_ids.mapped('eff_tt')))"
+                                                            t-esc="staff_count"
                                                         /></td>
                                                         <td><t
-                                                            t-esc="sum(list(partner_ids.mapped('eff_sal_assoc')))"
+                                                            t-esc="staff_shareholder_count"
                                                         /></td>
                                                         <td colspan="8" />
                                                     </tr>
diff --git a/views/res_partner.xml b/views/res_partner.xml
index 9d7b22fe9f4adbc8324ab0f35f84a8a67b85e86b..a08b443c3cbc170bbc3df99d8abdf3b7c3df90e9 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -17,6 +17,7 @@
                     <field name="phone" />
                     <field name="email" />
                     <field name="project_status" />
+                    <field name="membership_status" />
                 </tree>
             </field>
         </record>
diff --git a/views/scop_instance.xml b/views/scop_instance.xml
index 13ed5ce23151ca8771e4445c3a60ff5e4865ca1f..74bb36da254d1f981d92f8712d01f1082977f852 100644
--- a/views/scop_instance.xml
+++ b/views/scop_instance.xml
@@ -114,7 +114,12 @@
                                 />
                                 <field name="phone" readonly="True" />
                                 <field name="email" readonly="True" />
-                                <field name="project_status" readonly="True" />
+                                <field
+                                    name="project_status"
+                                    readonly="True"
+                                    invisible="1"
+                                />
+                                <field name="membership_status" readonly="True" />
                                 <field name="state" readonly="True" />
                                 <field name="comments" readonly="False" />
                                 <field name="amount_adhesion" readonly="False" />
@@ -128,7 +133,7 @@
                                     type="object"
                                     string="Changer avis"
                                     icon="fa-retweet"
-                                    attrs="{'invisible':[('project_status','=','6_suivi')]}"
+                                    attrs="{'invisible':[('project_status','=','4_suivi')]}"
                                 />
                                 <field name="is_success" invisible="True" />
                                 <button
diff --git a/wizard/scop_instance_mail_membership_wizard.py b/wizard/scop_instance_mail_membership_wizard.py
index c2d9af207dfefb6fe4da2859b2726673b0c24eea..9d5b27fe64e6daad7bae7385197f8d3c299f0b03 100644
--- a/wizard/scop_instance_mail_membership_wizard.py
+++ b/wizard/scop_instance_mail_membership_wizard.py
@@ -20,7 +20,7 @@ class ScopInstanceMailWizard(models.TransientModel):
                 self.env.context.get("active_id")
             )
             partner_ids = instance_id._get_partners().filtered(
-                lambda i: i.project_status == "6_suivi"
+                lambda i: i.membership_status == "member"
             )
             if partner_ids:
                 res = [("id", "in", partner_ids.ids)]
diff --git a/wizard/scop_instance_wizard.py b/wizard/scop_instance_wizard.py
index 3988713ffc5b2651f60bebcac452d966af77f5d9..ec65e06c66d5dffc14e40a4031efb7300ade5c1c 100644
--- a/wizard/scop_instance_wizard.py
+++ b/wizard/scop_instance_wizard.py
@@ -42,7 +42,7 @@ class ScopInstanceWizard(models.TransientModel):
                 [
                     ("is_cooperative", "=", True),
                     ("id", "not in", already_linked_ids),
-                    ("project_status", "=", "5_cg"),
+                    ("membership_status", "=", "soumis_cg"),
                 ]
             )
             return {
@@ -77,7 +77,7 @@ class ScopInstanceWizard(models.TransientModel):
                 [
                     ("is_cooperative", "=", True),
                     ("id", "not in", already_linked_ids),
-                    ("project_status", "=", "5_cg"),
+                    ("membership_status", "=", "soumis_cg"),
                 ]
             )
         # Write instance in partner