diff --git a/controllers/main.py b/controllers/main.py index 9101225..9980744 100644 --- a/controllers/main.py +++ b/controllers/main.py @@ -168,9 +168,15 @@ class AppNotificationController(http.Controller): user = request.env.user partner = user.partner_id - # Get all loyalty cards for this partner - cards = request.env['loyalty.card'].sudo().search([('partner_id', '=', partner.id)]) - card_ids = cards.ids + # Get loyalty cards for this partner (only multi-level membership and subscription programs) + cards = request.env['loyalty.card'].sudo().search([ + ('partner_id', '=', partner.id), + '|', + ('program_id.multi_level_membership', '=', True), + ('program_id.program_type', '=', 'subscription') + ]) + card_data = {c.id: {'program_type': c.program_id.program_type, 'program_name': c.program_id.name} for c in cards} + card_ids = list(card_data.keys()) if not card_ids: return {'status': 'success', 'data': []} @@ -250,6 +256,11 @@ class AppNotificationController(http.Controller): else: order_ref = rec.get('description') or '' + card_id_val = rec['card_id'][0] if isinstance(rec.get('card_id'), (list, tuple)) else rec.get('card_id') + card_info = card_data.get(card_id_val, {}) + program_type = card_info.get('program_type') or 'loyalty' + program_name = card_info.get('program_name') or '' + result.append({ 'id': rec['id'], 'date': str(rec.get('create_date') or ''), @@ -257,7 +268,9 @@ class AppNotificationController(http.Controller): 'type': point_type, 'order_ref': order_ref, 'pos_name': pos_name, - 'card_id': rec['card_id'][0] if isinstance(rec.get('card_id'), (list, tuple)) else rec.get('card_id'), + 'card_id': card_id_val, + 'program_type': program_type, + 'program_name': program_name, }) return {'status': 'success', 'data': result}