X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=eturecup.py;h=0b934ed1688e65234934cc83e2b4ba075fd1fa24;hb=HEAD;hp=b0cc60f6dd63508ae2d8aea09bc49561cbb4506f;hpb=3c111722bc1d15572b74155a1e749d01d18c8773;p=burette%2Feturecup.git diff --git a/eturecup.py b/eturecup.py index b0cc60f..0b934ed 100644 --- a/eturecup.py +++ b/eturecup.py @@ -2,7 +2,7 @@ ############################################################################## # # eturecup module for OpenERP, Custom module for Étu'Récup -# Copyright (C) 2014-2015 Étu'Récup () +# Copyright (C) 2014-2017 Étu'Récup () # # This file is a part of eturecup # @@ -21,7 +21,6 @@ # ############################################################################## -from openerp.osv import osv from openerp.osv import orm from openerp.osv import fields @@ -29,19 +28,69 @@ from openerp.osv import fields class Partner(orm.Model): _inherit = 'res.partner' + def _get_bikecoop_theme_type(self, cr, uid, ids, name, args, context=None): + """Return themes type for selected partners""" + res = {} + partners = self.browse(cr, uid, ids, context=context) + for partner in partners: + res[partner.id] = False + if partner.occupation_id.type == 'studies': + res[partner.id] = True + return res + + def onchange_occupation_id(self, cr, uid, ids, occupation_id): + """Define if a partner is a student based on his/her occupation type""" + v = {} + partners = self.browse(cr, uid, ids) + occupations = self.pool.get('bikecoop.partner.theme') + 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 = { - 'newsletter': fields.boolean('Do you want to receive our monthly newsletter?'), + 'newsletter': fields.boolean( + 'Do you want to receive our monthly newsletter?'), + 'is_student': fields.function(_get_bikecoop_theme_type, + method=True, + string='Student?', + type='boolean', + store=True), + '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?', + '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' _columns = { - 'type': fields.selection([('studies','Studies')], 'Type', help='An extra field to categorize themes.'), + 'type': fields.selection([('studies', 'Studies')], + 'Type', + help='An extra field to categorize themes.'), }