From: Ludovic CHEVALIER Date: Fri, 3 Nov 2017 17:01:02 +0000 (+0100) Subject: [MODULE] +constraints: a non-student can't be scholarship X-Git-Url: http://git.cyclocoop.org/?p=burette%2Feturecup.git;a=commitdiff_plain;h=66a7e6d4a80f4c5108e129800efb54f160df2169 [MODULE] +constraints: a non-student can't be scholarship --- diff --git a/eturecup.py b/eturecup.py index 14a3298..5f58510 100644 --- a/eturecup.py +++ b/eturecup.py @@ -44,10 +44,12 @@ class Partner(orm.Model): partners = self.browse(cr, uid, ids) occupations = self.pool.get('bikecoop.partner.theme') for partner in partners: - v['is_student'] = False occupation = occupations.browse(cr, uid, occupation_id) if occupation.type == 'studies': v['is_student'] = True + else: + v['is_student'] = False + v['is_scholarship'] = False return {'value': v} _columns = { @@ -55,17 +57,32 @@ class Partner(orm.Model): 'Do you want to receive our monthly newsletter?'), 'is_student': fields.function(_get_bikecoop_theme_type, method=True, - string='Is this partner a student?', + string='Student?', type='boolean', store=True), - 'scholarship': fields.boolean('Scholarship', - help='Is this student a scholarship?'), + 'is_scholarship': fields.boolean('Scholarship', + help='Is this student a scholarship?'), 'want_to_be_volunteer': fields.boolean( 'Do you want to receive some informations about volunteer \ activities?', help='… in company and its activities: bikecoop, events, …'), } + def _check_occupation_is_not_studies(self, cr, uid, ids, context=None): + """Check if partners are students. If not, they can't be + scholarships.""" + partners = self.browse(cr, uid, ids, context=context) + for partner in partners: + if partner.occupation_id.type != 'studies': + if partner.is_scholarship: + return False + return True + + _constraints = [ + (_check_occupation_is_not_studies, 'Error: This partner can\'t be a\ + scholarship because s·he isn\'t a student.', ['is_scholarship']), + ] + class Theme(orm.Model): _inherit = 'bikecoop.partner.theme' diff --git a/view/bikecoop.xml b/view/bikecoop.xml index 558ba6b..7f53346 100644 --- a/view/bikecoop.xml +++ b/view/bikecoop.xml @@ -40,7 +40,7 @@ - +