From fde57b86ab87dfd304cfe43ca3f93431d59780a5 Mon Sep 17 00:00:00 2001 From: Suherdy Yacob Date: Tue, 2 Jun 2026 11:51:44 +0700 Subject: [PATCH] feat: add manual_membership field to loyalty levels to exclude them from automatic assignment --- models/loyalty_program.py | 6 +++++- views/loyalty_program_views.xml | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/models/loyalty_program.py b/models/loyalty_program.py index 11cafd1..4d0f826 100644 --- a/models/loyalty_program.py +++ b/models/loyalty_program.py @@ -13,10 +13,14 @@ class LoyaltyProgram(models.Model): string='Minimum Spend', help='Used as a fallback mechanism for multi-level membership if the customer does not have an explicit level assigned. The one with the lowest spend will be chosen.' ) + manual_membership = fields.Boolean( + string='Manual Membership Only', + help='If checked, this membership level must be manually assigned to the customer. It will be excluded from automatic spend-based leveling.' + ) @api.model def _load_pos_data_fields(self, config_id): fields_list = super()._load_pos_data_fields(config_id) # Add custom fields so they are loaded in the POS frontend - fields_list.extend(['multi_level_membership', 'minimum_spend']) + fields_list.extend(['multi_level_membership', 'minimum_spend', 'manual_membership']) return fields_list diff --git a/views/loyalty_program_views.xml b/views/loyalty_program_views.xml index 3398133..5d3b724 100644 --- a/views/loyalty_program_views.xml +++ b/views/loyalty_program_views.xml @@ -13,6 +13,7 @@ +