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/res_partner.py b/models/res_partner.py
index 8660763b8cb336fa5c46dc0f719230937a6754e4..2925c909602c4b2e49c72079c624a1e87aa12028 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 cd6ee420d00c7c2e0583bbf57708503ffa107ac4..99f6ac788326bbbf601f4215f47d888d0f10e11c 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 beb13874dd89496bea0b947657afb2b25eb7a5f1..53b16e7a6ee3491f5fe343586fba5f6a974d3da2 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 1035b609011d1d68d8d8f8c73cc8409995154733..15d92b7b54e1a7514086ea5be896800e73609bab 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 7681e705babb91d495f9014f9c424671589257d6..6f3a5c9a74157fb6476d1f312b88e1fff68544d8 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 5fa97b48b786e4611bf6fb32ad06a5cd72705805..b57fb30981a50b42add21244442a3d3f1915c3d2 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 318539183c25f26e99ed1d6d0b8f83bdc731992f..06020fc94b07e64338021ad1317447d0b1c61adb 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 272995f249e17e638d7115683667608ca8702347..2964c5a908800da93377bc591a4aae82a2f58495 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 59a1b0d60167912aa578125fd0c57cef8c01549d..08f0ae194097e0c8330a7cc714ef8192501553dc 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 8738c8d516643f4c92d474c1a7240200b093f490..c61b8d11cc782a1423aae273d0b079b964874a86 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">