From 773eccad6b1bf5789fa0bb61c07c3afd9973658a Mon Sep 17 00:00:00 2001
From: benjamin <benjamin@le-filament.com>
Date: Tue, 25 Jul 2023 12:27:25 +0200
Subject: [PATCH] [clean] pre-commit

---
 .pre-commit-config.yaml                       | 35 +++++-----
 models/res_partner.py                         | 64 +++++++++++--------
 security/ir.model.access.csv                  |  2 +-
 views/res_partner.xml                         | 12 +++-
 views/scop_adhesion_file.xml                  |  2 +-
 wizard/scop_compulsory_fields_suivi_wizard.py | 20 +++---
 .../scop_compulsory_fields_suivi_wizard.xml   | 12 ++--
 .../scop_partner_staff_membership_wizard.py   | 14 ++--
 .../scop_partner_staff_membership_wizard.xml  | 23 +++----
 wizard/scop_submit_membership_wizard.py       |  3 +-
 wizard/scop_submit_membership_wizard.xml      |  5 +-
 11 files changed, 102 insertions(+), 90 deletions(-)

diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index 732d0c4..4acca68 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/res_partner.py b/models/res_partner.py
index 8660763..2925c90 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -177,18 +177,27 @@ class ScopPartner(models.Model):
 
     def fill_membership_staff(self):
         self.ensure_one()
-        staff_id = self.env["scop.partner.staff"].search([
-            ("partner_id", "=", self.id),
-            ("type_entry", "=", "membership"),
-            ("effective_date", ">", fields.Date.subtract(fields.Date.today(), years=1))
-        ], limit=1)
+        staff_id = self.env["scop.partner.staff"].search(
+            [
+                ("partner_id", "=", self.id),
+                ("type_entry", "=", "membership"),
+                (
+                    "effective_date",
+                    ">",
+                    fields.Date.subtract(fields.Date.today(), years=1),
+                ),
+            ],
+            limit=1,
+        )
         if not staff_id:
-            staff_id = staff_id.create({
-                "partner_id": self.id,
-                "type_entry": "membership",
-                "effective_date": fields.Date.today(),
-                "staff_count": 0,
-            })
+            staff_id = staff_id.create(
+                {
+                    "partner_id": self.id,
+                    "type_entry": "membership",
+                    "effective_date": fields.Date.today(),
+                    "staff_count": 0,
+                }
+            )
 
         wizard = self.env["scop.partner.staff.membership.wizard"].create(
             {"partner_id": self.id, "staff_id": staff_id.id}
@@ -379,8 +388,8 @@ class ScopPartner(models.Model):
             )
         else:
             staff_line = self.staff_ids.filtered(
-                lambda s: s.type_entry == "membership").sorted(
-                key="effective_date", reverse=True)
+                lambda s: s.type_entry == "membership"
+            ).sorted(key="effective_date", reverse=True)
             staff_number = staff_line[0].staff_count if staff_line else 0
             amount_adhesion = self.get_amount_adhesion(staff_number)
 
@@ -457,15 +466,16 @@ class ScopPartner(models.Model):
         @return : True
         """
         staff_line = self.staff_ids.filtered(
-            lambda s: s.type_entry == "membership").sorted(
-            key="effective_date", reverse=True
-        )
+            lambda s: s.type_entry == "membership"
+        ).sorted(key="effective_date", reverse=True)
         if staff_line and staff_line[0].staff_count > 0:
-            self.update({
-                "membership_status": "soumis_cg",
-                "date_transmission_cg": fields.Date.today(),
-                "list_logs": False,
-            })
+            self.update(
+                {
+                    "membership_status": "soumis_cg",
+                    "date_transmission_cg": fields.Date.today(),
+                    "list_logs": False,
+                }
+            )
             self.affectation_contact_ministere()
         else:
             raise UserError(_("Les effectifs à l'adhésion ne sont pas renseignés."))
@@ -528,11 +538,13 @@ class ScopPartner(models.Model):
         # Create invoice adhésion
         invoice = self.create_invoice_adhesion()
         self.invoice_adhesion_id = invoice
-        self.update({
-            "membership_status": "member",
-            "extranet_update_company": True,
-            "extranet_service_access": True,
-        })
+        self.update(
+            {
+                "membership_status": "member",
+                "extranet_update_company": True,
+                "extranet_service_access": True,
+            }
+        )
 
         # TODO: Supprimer ?
         # set liasse_fiscale_adhesion as qualified
diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv
index cd6ee42..99f6ac7 100644
--- a/security/ir.model.access.csv
+++ b/security/ir.model.access.csv
@@ -8,4 +8,4 @@ admin_scop_adhesion_file,admin_scop_adhesion_file,model_scop_adhesion_file,cgsco
 cg_access_compulsory_fields_suivi_wizard,cg_access_compulsory_fields_suivi_wizard,model_scop_compulsory_fields_suivi_wizard,base.group_user,1,1,1,0
 cg_access_adhesion_year_wizard,cg_access_adhesion_year_wizard,model_scop_adhesion_year_wizard,cgscop_partner.group_cg_administrative,1,1,1,0
 access_scop_partner_staff_membership_wizard,access_scop_partner_staff_membership_wizard,model_scop_partner_staff_membership_wizard,base.group_user,1,1,1,1
-access_scop_submit_membership_wizard,access_scop_submit_membership_wizard,model_scop_submit_membership_wizard,base.group_user,1,1,1,1
\ No newline at end of file
+access_scop_submit_membership_wizard,access_scop_submit_membership_wizard,model_scop_submit_membership_wizard,base.group_user,1,1,1,1
diff --git a/views/res_partner.xml b/views/res_partner.xml
index beb1387..53b16e7 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -65,7 +65,14 @@
                         attrs="{'invisible': [('membership_status', '!=', 'adhesion')]}"
                         role="alert"
                         class="alert alert-warning"
-                    >Il est nécessaire de renseigner <button class="btn btn-info btn-sm" name="fill_membership_staff" type="object">les effectifs</button> et <button class="btn btn-info btn-sm" name="">les données financières</button> pour valider l'adhésion.
+                    >Il est nécessaire de renseigner <button
+                            class="btn btn-info btn-sm"
+                            name="fill_membership_staff"
+                            type="object"
+                        >les effectifs</button> et <button
+                            class="btn btn-info btn-sm"
+                            name=""
+                        >les données financières</button> pour valider l'adhésion.
                     </div>
                 </xpath>
 
@@ -77,7 +84,8 @@
                         class="alert alert-warning"
                         colspan="2"
                     >
-                        Charger les <strong>Statuts</strong> et <strong>la publication au JO</strong> dans l'onglet <i>Documents</i>.
+                        Charger les <strong>Statuts</strong> et <strong
+                        >la publication au JO</strong> dans l'onglet <i>Documents</i>.
                     </div>
                 </xpath>
                 <!-- Alert warning pour le KBis -->
diff --git a/views/scop_adhesion_file.xml b/views/scop_adhesion_file.xml
index 1035b60..15d92b7 100644
--- a/views/scop_adhesion_file.xml
+++ b/views/scop_adhesion_file.xml
@@ -9,7 +9,7 @@
             <field name="model">scop.adhesion.file</field>
             <field name="arch" type="xml">
                 <search string="Recherche Documents">
-                    <field name="name"/>
+                    <field name="name" />
                     <filter
                         string="Projets de création"
                         name="project"
diff --git a/wizard/scop_compulsory_fields_suivi_wizard.py b/wizard/scop_compulsory_fields_suivi_wizard.py
index 7681e70..6f3a5c9 100644
--- a/wizard/scop_compulsory_fields_suivi_wizard.py
+++ b/wizard/scop_compulsory_fields_suivi_wizard.py
@@ -28,7 +28,9 @@ class ScopCompulsoryFieldsSuiviWizard(models.TransientModel):
         related="partner_id.is_registration_in_progress", readonly=False
     )
     naf_id = fields.Many2one(related="partner_id.naf_id", readonly=False)
-    registration_date = fields.Date(related="partner_id.registration_date", readonly=False)
+    registration_date = fields.Date(
+        related="partner_id.registration_date", readonly=False
+    )
     siret = fields.Char(related="partner_id.siret", readonly=False)
     with_adhesion = fields.Boolean("Avec adhésion")
     list_logs = fields.Text("Liste des erreurs")
@@ -47,14 +49,16 @@ class ScopCompulsoryFieldsSuiviWizard(models.TransientModel):
         if form_id in form_id._get_lm_form():
             self.partner_id.write({"extranet_service_access": True})
             if not self.partner_id.director_ids:
-                raise UserError(_(
-                    "Il est nécessaire de renseigner les mandataires pour valider"
-                ))
+                raise UserError(
+                    _("Il est nécessaire de renseigner les mandataires pour valider")
+                )
             for director in self.partner_id.director_ids:
-                director.update({
-                    "extranet_access": True,
-                    "extranet_update_company": True,
-                })
+                director.update(
+                    {
+                        "extranet_access": True,
+                        "extranet_update_company": True,
+                    }
+                )
 
         return {"type": "ir.actions.act_window_close"}
 
diff --git a/wizard/scop_compulsory_fields_suivi_wizard.xml b/wizard/scop_compulsory_fields_suivi_wizard.xml
index 5fa97b4..b57fb30 100644
--- a/wizard/scop_compulsory_fields_suivi_wizard.xml
+++ b/wizard/scop_compulsory_fields_suivi_wizard.xml
@@ -12,12 +12,14 @@
             <field name="model">scop.compulsory.fields.suivi.wizard</field>
             <field name="arch" type="xml">
                 <form string="Confirmer les champs obligatoires">
-                    <div
-                        class="alert alert-warning"
-                        role="alert"
-                    >
+                    <div class="alert alert-warning" role="alert">
                         <p>
-                            Il es nécessaire de charger les <strong>statuts</strong><span attrs="{'invisible': [('is_registration_in_progress', '=', True)]}">, le <strong>KBIS</strong></span> et <strong>l'annonce de publication au JO</strong> dans l'onglet <i>Documents</i> de la coopérative pour valider sa création.
+                            Il es nécessaire de charger les <strong
+                            >statuts</strong><span
+                                attrs="{'invisible': [('is_registration_in_progress', '=', True)]}"
+                            >, le <strong>KBIS</strong></span> et <strong
+                            >l'annonce de publication au JO</strong> dans l'onglet <i
+                            >Documents</i> de la coopérative pour valider sa création.
                         </p>
                     </div>
                     <div
diff --git a/wizard/scop_partner_staff_membership_wizard.py b/wizard/scop_partner_staff_membership_wizard.py
index 3185391..06020fc 100644
--- a/wizard/scop_partner_staff_membership_wizard.py
+++ b/wizard/scop_partner_staff_membership_wizard.py
@@ -11,21 +11,15 @@ class ScopPartnerStaffMembershipWizard(models.TransientModel):
     # ------------------------------------------------------
     # Field declaration
     # ------------------------------------------------------
-    partner_id = fields.Many2one(
-        comodel_name="res.partner", required=True
-    )
-    staff_id = fields.Many2one(
-        comodel_name="scop.partner.staff", required=True
-    )
+    partner_id = fields.Many2one(comodel_name="res.partner", required=True)
+    staff_id = fields.Many2one(comodel_name="scop.partner.staff", required=True)
     effective_date = fields.Date(related="staff_id.effective_date", readonly=False)
     staff_count = fields.Integer(related="staff_id.staff_count", readonly=False)
     staff_shareholder_count = fields.Integer(
-        related="staff_id.staff_shareholder_count",
-        readonly=False
+        related="staff_id.staff_shareholder_count", readonly=False
     )
     staff_shareholder_total = fields.Integer(
-        related="staff_id.staff_shareholder_total",
-        readonly=False
+        related="staff_id.staff_shareholder_total", readonly=False
     )
     staff_average = fields.Float(related="staff_id.staff_average", readonly=False)
     comment = fields.Char(related="staff_id.comment", readonly=False)
diff --git a/wizard/scop_partner_staff_membership_wizard.xml b/wizard/scop_partner_staff_membership_wizard.xml
index 272995f..2964c5a 100644
--- a/wizard/scop_partner_staff_membership_wizard.xml
+++ b/wizard/scop_partner_staff_membership_wizard.xml
@@ -4,27 +4,17 @@
 <odoo>
     <data>
 
-        <record
-            model="ir.ui.view"
-            id="scop_partner_staff_membership_wizard_form"
-        >
+        <record model="ir.ui.view" id="scop_partner_staff_membership_wizard_form">
             <field name="name">scop.partner.staff.membership.wizard.form</field>
             <field name="model">scop.partner.staff.membership.wizard</field>
             <field name="arch" type="xml">
                 <form string="Effectifs à l'adhésion">
                     <h5>Effectifs à l'adhésion</h5>
-                    <hr/>
+                    <hr />
                     <group>
                         <group>
-                            <field
-                                name="partner_id"
-                                readonly="1"
-                            />
-                            <field
-                                name="staff_id"
-                                readonly="1"
-                                invisible="1"
-                            />
+                            <field name="partner_id" readonly="1" />
+                            <field name="staff_id" readonly="1" invisible="1" />
                             <field name="effective_date" required="1" />
                         </group>
                         <group>
@@ -49,7 +39,10 @@
             </field>
         </record>
 
-        <record id="scop_partner_staff_membership_wizard_action" model="ir.actions.act_window">
+        <record
+            id="scop_partner_staff_membership_wizard_action"
+            model="ir.actions.act_window"
+        >
             <field name="name">Effectif à l'adhésion</field>
             <field name="type">ir.actions.act_window</field>
             <field name="res_model">scop.partner.staff.membership.wizard</field>
diff --git a/wizard/scop_submit_membership_wizard.py b/wizard/scop_submit_membership_wizard.py
index 59a1b0d..08f0ae1 100644
--- a/wizard/scop_submit_membership_wizard.py
+++ b/wizard/scop_submit_membership_wizard.py
@@ -1,8 +1,7 @@
 # © 2021 Le Filament (<http://www.le-filament.com>)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
 
-from odoo import _, fields, models
-from odoo.exceptions import UserError
+from odoo import fields, models
 
 
 class ScopSubmitMembershipWizard(models.TransientModel):
diff --git a/wizard/scop_submit_membership_wizard.xml b/wizard/scop_submit_membership_wizard.xml
index 8738c8d..c61b8d1 100644
--- a/wizard/scop_submit_membership_wizard.xml
+++ b/wizard/scop_submit_membership_wizard.xml
@@ -4,10 +4,7 @@
 <odoo>
     <data>
 
-        <record
-            model="ir.ui.view"
-            id="scop_submit_membership_wizard_form"
-        >
+        <record model="ir.ui.view" id="scop_submit_membership_wizard_form">
             <field name="name">scop.submit.membership.wizard.form</field>
             <field name="model">scop.submit.membership.wizard</field>
             <field name="arch" type="xml">
-- 
GitLab