From a3eb457218210e0818002db153223e514833b9bf Mon Sep 17 00:00:00 2001 From: benjamin <benjamin@le-filament.com> Date: Wed, 18 Oct 2023 20:03:40 +0200 Subject: [PATCH] [UPD] _compute_last_membership_invoice_date function --- .pre-commit-config.yaml | 23 ++++++++++++----------- models/res_partner.py | 15 ++++++++------- views/res_partner.xml | 6 ++++-- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 1c6434b..4acca68 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -27,6 +27,11 @@ 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: ab1d7f6 hooks: @@ -46,7 +51,7 @@ repos: - --remove-duplicate-keys - --remove-unused-variables - repo: https://github.com/psf/black - rev: 20.8b1 + rev: 22.3.0 hooks: - id: black - repo: https://github.com/pre-commit/mirrors-prettier @@ -96,32 +101,28 @@ repos: - id: pyupgrade args: ["--keep-percent-format"] - repo: https://github.com/PyCQA/isort - rev: 5.5.1 + rev: 5.12.0 hooks: - id: isort name: isort except __init__.py args: - --settings=. exclude: /__init__\.py$ - - repo: https://gitlab.com/PyCQA/flake8 + - 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: pylint-2.5.3 + - 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==3.5.0 - - 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 3eabbe0..da72449 100644 --- a/models/res_partner.py +++ b/models/res_partner.py @@ -45,10 +45,9 @@ class ResPartner(models.Model): default=False, ) is_membership_archived = fields.Boolean("Membre archivé") - last_membership_invoice_date = fields.Date( string="Date de dernière facture d'adhésion", - compute='_compute_last_membership_invoice_date' + compute="_compute_last_membership_invoice_date", ) # ------------------------------------------------------ @@ -101,11 +100,12 @@ class ResPartner(models.Model): if partner.parent_id and not partner.is_company: partner.membership_state = partner.parent_id.membership_state - @api.depends('member_lines') + @api.depends("member_lines") def _compute_last_membership_invoice_date(self): for partner in self: invoices = partner.member_lines.filtered( - lambda line: line.state == 'invoiced' or 'paid' + lambda line: line.account_invoice_id + and line.account_invoice_id.state == "posted" ).mapped("date") last_invoice_date = max(invoices, default=False) partner.last_membership_invoice_date = last_invoice_date @@ -118,6 +118,7 @@ class ResPartner(models.Model): res = super(ResPartner, self)._onchange_parent_id() self.is_membership_archived = self.parent_id.is_membership_archived return res + # ------------------------------------------------------ # CRUD methods (ORM overrides) # ------------------------------------------------------ @@ -131,11 +132,11 @@ class ResPartner(models.Model): # if partner has child, update all childs if partner.child_ids: partner.child_ids.update( - { - "is_membership_archived": partner.is_membership_archived - }) + {"is_membership_archived": partner.is_membership_archived} + ) return res + # ------------------------------------------------------ # Actions # ------------------------------------------------------ diff --git a/views/res_partner.xml b/views/res_partner.xml index 42eea96..3ff2550 100644 --- a/views/res_partner.xml +++ b/views/res_partner.xml @@ -139,7 +139,6 @@ <xpath expr="//field[@name='membership_start']" position="after"> <field name="last_membership_invoice_date" - readonly="1" attrs="{'invisible':[('last_membership_invoice_date','=',False)]}" /> </xpath> @@ -176,7 +175,10 @@ <field name="membership_is_delegate" /> <field name="membership_is_mandate" /> <field name="membership_is_contact" /> - <field name="is_membership_archived" widget="boolean_toggle" /> + <field + name="is_membership_archived" + widget="boolean_toggle" + /> </group> </group> </page> -- GitLab