From 03b320ad2993f0bbc04ddd98c68e69667834cf9e Mon Sep 17 00:00:00 2001 From: Daniel Palumbo Date: Wed, 1 Jul 2026 11:07:56 +0200 Subject: [PATCH 1/2] [MIG] T3227 survival_sponsorship_compassion: migrate golden ticket reporting to v18 - Add sr_survival_* computed fields on res.partner (contracts_report.py) - Add survival_sponsorship_count stat button and open_survival_sponsorships action - Add contracts_report_view.xml with xpath targeting //group[@name='last12months'] - Add res_partner_view.xml with survival stat button after open_contracts - Add list_price=62.0 to survival product template - sponsorship_compassion: add name="last12months" to group, rename sr_sponsorship string to "Number of child sponsorships", restore "Sponsorship impact" stat button, update de/fr_CH/it translations Co-Authored-By: Claude Sonnet 4.6 --- sponsorship_compassion/i18n/de.po | 2 +- sponsorship_compassion/i18n/fr_CH.po | 2 +- sponsorship_compassion/i18n/it.po | 2 +- .../models/contracts_report.py | 2 +- .../views/contracts_report_view.xml | 5 +- .../views/res_partner_view.xml | 8 + .../__manifest__.py | 2 + .../data/survival_product_template.xml | 1 + .../models/__init__.py | 1 + .../models/contracts_report.py | 186 ++++++++++++++++++ .../models/res_partner.py | 73 ++++++- .../views/contracts_report_view.xml | 30 +++ .../views/res_partner_view.xml | 33 ++++ 13 files changed, 341 insertions(+), 6 deletions(-) create mode 100644 survival_sponsorship_compassion/models/contracts_report.py create mode 100644 survival_sponsorship_compassion/views/contracts_report_view.xml create mode 100644 survival_sponsorship_compassion/views/res_partner_view.xml diff --git a/sponsorship_compassion/i18n/de.po b/sponsorship_compassion/i18n/de.po index 44ca8612f..ffde6086c 100644 --- a/sponsorship_compassion/i18n/de.po +++ b/sponsorship_compassion/i18n/de.po @@ -1001,7 +1001,7 @@ msgstr "Anzahl der servierten Mahlzeiten" #. module: sponsorship_compassion #: model:ir.model.fields,field_description:sponsorship_compassion.field_res_partner__sr_sponsorship #: model:ir.model.fields,field_description:sponsorship_compassion.field_res_users__sr_sponsorship -msgid "Number of sponsorship" +msgid "Number of child sponsorships" msgstr "Anzahl der Patenschaften" #. module: sponsorship_compassion diff --git a/sponsorship_compassion/i18n/fr_CH.po b/sponsorship_compassion/i18n/fr_CH.po index f778477e4..0cb78996d 100644 --- a/sponsorship_compassion/i18n/fr_CH.po +++ b/sponsorship_compassion/i18n/fr_CH.po @@ -1004,7 +1004,7 @@ msgstr "Nombre de repas servis" #. module: sponsorship_compassion #: model:ir.model.fields,field_description:sponsorship_compassion.field_res_partner__sr_sponsorship #: model:ir.model.fields,field_description:sponsorship_compassion.field_res_users__sr_sponsorship -msgid "Number of sponsorship" +msgid "Number of child sponsorships" msgstr "Nombre de parrainages" #. module: sponsorship_compassion diff --git a/sponsorship_compassion/i18n/it.po b/sponsorship_compassion/i18n/it.po index b55d9eddd..e26e621c4 100644 --- a/sponsorship_compassion/i18n/it.po +++ b/sponsorship_compassion/i18n/it.po @@ -1003,7 +1003,7 @@ msgstr "Numero di pasti serviti" #. module: sponsorship_compassion #: model:ir.model.fields,field_description:sponsorship_compassion.field_res_partner__sr_sponsorship #: model:ir.model.fields,field_description:sponsorship_compassion.field_res_users__sr_sponsorship -msgid "Number of sponsorship" +msgid "Number of child sponsorships" msgstr "Numero di sponsorizzazioni" #. module: sponsorship_compassion diff --git a/sponsorship_compassion/models/contracts_report.py b/sponsorship_compassion/models/contracts_report.py index d54386399..a112c3568 100644 --- a/sponsorship_compassion/models/contracts_report.py +++ b/sponsorship_compassion/models/contracts_report.py @@ -31,7 +31,7 @@ class PartnerSponsorshipReport(models.Model): # sr -> Sponsorship Report sr_sponsorship = fields.Integer( - "Number of sponsorship", + "Number of child sponsorships", compute="_compute_sr_sponsorship", help="Count only the sponsorships who " "are fully managed or those who are " diff --git a/sponsorship_compassion/views/contracts_report_view.xml b/sponsorship_compassion/views/contracts_report_view.xml index 0dbb36bd8..7a847b278 100644 --- a/sponsorship_compassion/views/contracts_report_view.xml +++ b/sponsorship_compassion/views/contracts_report_view.xml @@ -18,7 +18,10 @@ - + + + + + + + From a0e4e0d477b21b2b7257056a3b77ef36b2298728 Mon Sep 17 00:00:00 2001 From: Daniel Palumbo Date: Wed, 1 Jul 2026 11:12:14 +0200 Subject: [PATCH 2/2] [MIG] sponsorship_compassion: restore missing open_donation_details button MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add back the "Details of donations" stat button and method that was dropped during the v18 migration. Also fix FA4 icon (fa-file-text-o → fa-file-alt) on both the donations details and sponsorship impact buttons. Co-Authored-By: Claude Sonnet 4.6 --- .../models/contracts_report.py | 29 +++++++++++++++++++ .../views/contracts_report_view.xml | 10 +++++++ .../views/res_partner_view.xml | 2 +- 3 files changed, 40 insertions(+), 1 deletion(-) diff --git a/sponsorship_compassion/models/contracts_report.py b/sponsorship_compassion/models/contracts_report.py index a112c3568..15cd3a463 100644 --- a/sponsorship_compassion/models/contracts_report.py +++ b/sponsorship_compassion/models/contracts_report.py @@ -182,6 +182,35 @@ def get_nb_gift(_partner): sr_total_gift += get_nb_gift(member) partner.sr_total_gift = sr_total_gift + def open_donation_details(self): + self.ensure_one() + return { + "type": "ir.actions.act_window", + "name": "Donations details", + "res_model": "account.move.line", + "views": [ + [ + self.env.ref( + "sponsorship_compassion.view_invoice_line_partner_tree" + ).id, + "list", + ] + ], + "context": self.with_context( + search_default_group_product=1, + ).env.context, + "domain": [ + "|", + ("partner_id", "=", self.id), + ("partner_id.church_id", "=", self.id), + ("move_id.invoice_category", "in", ["gift", "sponsorship", "fund"]), + ("move_id.move_type", "=", "out_invoice"), + ("payment_state", "=", "paid"), + ("last_payment", "<", self.end_period), + ("last_payment", ">=", self.start_period), + ], + } + def open_sponsorship_report(self): action = { "type": "ir.actions.act_window", diff --git a/sponsorship_compassion/views/contracts_report_view.xml b/sponsorship_compassion/views/contracts_report_view.xml index 7a847b278..76ee77a28 100644 --- a/sponsorship_compassion/views/contracts_report_view.xml +++ b/sponsorship_compassion/views/contracts_report_view.xml @@ -6,6 +6,16 @@
+
+
diff --git a/sponsorship_compassion/views/res_partner_view.xml b/sponsorship_compassion/views/res_partner_view.xml index 5fb85b932..6f34a2eba 100644 --- a/sponsorship_compassion/views/res_partner_view.xml +++ b/sponsorship_compassion/views/res_partner_view.xml @@ -61,7 +61,7 @@ class="oe_stat_button" type="object" name="open_sponsorship_report" - icon="fa-file-text-o" + icon="fa-file-alt" string="Sponsorship impact" groups="child_compassion.group_sponsorship" />