diff --git a/golem_activity_registration_payment/__manifest__.py b/golem_activity_registration_payment/__manifest__.py index 87325cc..99193bf 100644 --- a/golem_activity_registration_payment/__manifest__.py +++ b/golem_activity_registration_payment/__manifest__.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- # Copyright 2018 Fabien Bourgeois +# Copyright 2018 Youssef El Ouahby # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as @@ -19,7 +20,7 @@ 'name': 'GOLEM Activity Member Registration Payments', 'summary': 'GOLEM Activities Member Registration Payments', 'description': 'GOLEM Activities Member Registration Payments', - 'version': '10.0.0.3.6', + 'version': '10.0.0.4.0', 'category': 'GOLEM', 'author': 'Fabien Bourgeois', 'license': 'AGPL-3', diff --git a/golem_activity_registration_payment/models/golem_activity.py b/golem_activity_registration_payment/models/golem_activity.py index 71acdb6..9dcd94b 100644 --- a/golem_activity_registration_payment/models/golem_activity.py +++ b/golem_activity_registration_payment/models/golem_activity.py @@ -18,10 +18,17 @@ """ GOLEM Activity adaptations """ -from odoo import models, fields +from odoo import models, fields, api class GolemActivity(models.Model): """ GOLEM Activity adaptations """ _inherit = 'golem.activity' - free_activity = fields.Boolean(required=True) + free_activity = fields.Boolean(default=False) + + @api.onchange('free_activity') + def onchange_free_activity(self): + """ If free activity, price should be 0.0 """ + for activity in self: + if activity.free_activity: + activity.list_price = 0.0 diff --git a/golem_activity_registration_payment/models/golem_activity_registration.py b/golem_activity_registration_payment/models/golem_activity_registration.py index b3d5361..9e8b475 100644 --- a/golem_activity_registration_payment/models/golem_activity_registration.py +++ b/golem_activity_registration_payment/models/golem_activity_registration.py @@ -31,3 +31,4 @@ class GolemActivityRegistration(models.Model): invoice_id = fields.Many2one(related='invoice_line_id.invoice_id') invoice_state = fields.Selection(related='invoice_line_id.invoice_id.state', store=True) + free_activity = fields.Boolean(related='activity_id.free_activity') diff --git a/golem_activity_registration_payment/models/golem_member.py b/golem_activity_registration_payment/models/golem_member.py index b11a777..30aa5b2 100644 --- a/golem_activity_registration_payment/models/golem_member.py +++ b/golem_activity_registration_payment/models/golem_member.py @@ -35,9 +35,9 @@ class GolemMember(models.Model): regis = member.activity_registration_ids regis = regis.filtered( lambda r: (r.state == 'confirmed' and + not r.activity_id.free_activity and (not r.invoice_line_id or - r.invoice_line_id.invoice_id.state == 'cancel') and - not r.activity_id.free_activity) + r.invoice_line_id.invoice_id.state == 'cancel')) ) member.has_invoicable_registrations = bool(len(regis)) @@ -53,10 +53,10 @@ class GolemMember(models.Model): self.ensure_one() member = self[0] registrations = member.activity_registration_ids.filtered( - lambda r: r.state == 'confirmed' and - (not r.invoice_line_id or - r.invoice_line_id.invoice_id.state == 'cancel') and - not r.activity_id.free_activity + lambda r: (r.state == 'confirmed' and + not r.activity_id.free_activity and + (not r.invoice_line_id or + r.invoice_line_id.invoice_id.state == 'cancel')) ) if registrations: invoicing = self.env['golem.activity.registration.invoicing'].create({ diff --git a/golem_activity_registration_payment/views/golem_activity_registration_views.xml b/golem_activity_registration_payment/views/golem_activity_registration_views.xml index 86fb72c..3bae912 100644 --- a/golem_activity_registration_payment/views/golem_activity_registration_views.xml +++ b/golem_activity_registration_payment/views/golem_activity_registration_views.xml @@ -45,6 +45,12 @@ along with this program. If not, see . + + + + + {'readonly': [('free_activity', '=', True)]} + diff --git a/golem_activity_registration_payment/views/golem_activity_views.xml b/golem_activity_registration_payment/views/golem_activity_views.xml index 1ee833a..08ba1be 100644 --- a/golem_activity_registration_payment/views/golem_activity_views.xml +++ b/golem_activity_registration_payment/views/golem_activity_views.xml @@ -22,24 +22,29 @@ along with this program. If not, see . - Golem activity form activity registration payment adaptations + Golem activity form adaptations golem.activity - - + + {'invisible': [('free_activity', '=', True)]} + + + + - Golem Activity Search activity registration payment adaptations + Golem Activity Search adaptations golem.activity - +