[PYTHON] ~fix bikecoop partner form: studies fields didn't appear when a studie occup...
[burette/eturecup.git] / eturecup.py
index 14a3298..0b934ed 100644 (file)
@@ -43,11 +43,13 @@ class Partner(orm.Model):
         v = {}
         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':
+        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'