##############################################################################
#
# eturecup module for OpenERP, Custom module for Étu'Récup
-# Copyright (C) 2014-2015 Étu'Récup (<http://www.eturecup.org/>)
+# Copyright (C) 2014-2017 Étu'Récup (<http://www.eturecup.org/>)
#
# This file is a part of eturecup
#
#
##############################################################################
-from openerp.osv import osv
from openerp.osv import orm
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.'),
+ }
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: