← Back to team overview

openerp-dev-web team mailing list archive

lp:~openerp-dev/openobject-addons/addons-training-add-recursion-constrain-course-ysa into lp:~openobject-training/openobject-addons/training

 

Yogesh(Open ERP) has proposed merging lp:~openerp-dev/openobject-addons/addons-training-add-recursion-constrain-course-ysa into lp:~openobject-training/openobject-addons/training.

Requested reviews:
  Bhumika (OpenERP) (sbh-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/addons-training-add-recursion-constrain-course-ysa/+merge/58625

[FIX] training :- add _check_recursion constrain in training.course.theme object
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/addons-training-add-recursion-constrain-course-ysa/+merge/58625
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/addons-training-add-recursion-constrain-course-ysa.
=== modified file 'training/training.py'
--- training/training.py	2011-04-18 10:48:59 +0000
+++ training/training.py	2011-04-21 06:11:38 +0000
@@ -260,6 +260,20 @@
             res.append((record['id'], name))
         return res
 
+    def _check_recursion(self, cr, uid, ids, context=None):
+        level = 100
+        while len(ids):
+            cr.execute('select distinct parent_id from training_course_theme where id in ('+','.join(map(str,ids))+')')
+            ids = filter(None, map(lambda x:x[0], cr.fetchall()))
+            if not level:
+                return False
+            level -= 1
+        return True
+
+    _constraints = [
+        (_check_recursion, 'Error! You can not create recursive Course Theme.', ['parent_id'])
+    ]
+
 training_course_theme()
 
 class training_course_kind(osv.osv):


Follow ups