← Back to team overview

openerp-dev-web team mailing list archive

[Merge] lp:~openerp-dev/openobject-addons/price_list_fix into lp:~openobject-training/openobject-addons/training

 

gpa(Open ERP) has proposed merging lp:~openerp-dev/openobject-addons/price_list_fix 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/price_list_fix/+merge/56755

Improvement for the price list when partner not define
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/price_list_fix/+merge/56755
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/price_list_fix.
=== modified file 'training/training.py'
--- training/training.py	2011-04-06 07:06:20 +0000
+++ training/training.py	2011-04-07 13:09:27 +0000
@@ -3840,6 +3840,8 @@
         return list(keys)
 
     def _price_compute(self, cr, uid, ids, fieldnames, args, context=None):
+        if context is None:
+            context = {}
         res = dict.fromkeys(ids, 0.0)
         for this in self.browse(cr, uid, ids, context=context):
             res[this.id] = sum(p.price for p in this.participation_ids)
@@ -3847,7 +3849,7 @@
 
     def _date_compute(self, cr, uid, ids, fieldnames, args, context=None):
         res = dict.fromkeys(ids, False)
-        for this in self.browse(cr, uid, ids, context):
+        for this in self.browse(cr, uid, ids, context=context):
             if this.participation_ids:
                 res[this.id] = min(p.seance_id.date for p in this.participation_ids)
         return res
@@ -3944,6 +3946,9 @@
         po_proxy = self.pool.get('purchase.order')
 
         for this in self.browse(cr, uid, ids, context=context):
+            if not this.job_id.name.property_product_pricelist_purchase:
+                raise osv.except_osv(_('Warning'),_('Not found any purchase price list for this contact'))
+
             po_id = po_proxy.create(cr, uid, {
                 'name': "Session - %s" % (this.session_id.name),
                 'partner_id': this.job_id.name.id,
@@ -4126,7 +4131,7 @@
     def on_change_seance(self, cr, uid, _, job_id, seance_id, context=None):
         if context is None:
             context = {}
-        seance = seance_id and self.pool.get('training.seance').browse(cr, uid, seance_id, context) or False
+        seance = seance_id and self.pool.get('training.seance').browse(cr, uid, seance_id, context=context) or False
         return {'value': {
             'group_id': seance and seance.group_id.id or False,
             'date': seance and seance.date or False,
@@ -4167,7 +4172,7 @@
             return False
 
         if product_id and isinstance(product_id, (int,long)):
-            product = self.pool.get('product.product').browse(cr, uid, product_id)
+            product = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
         else:
             product = seance._get_product()
         if not product:
@@ -4295,7 +4300,7 @@
             res = cr.fetchone()
             if res:
                 name = '%s %s' % (contact.first_name, contact.name)
-                other_seance = self.pool.get('training.seance').browse(cr, uid, res[0], context)
+                other_seance = self.pool.get('training.seance').browse(cr, uid, res[0], context=context)
 
                 raise osv.except_osv(_('Error'), _('%(stakeholder)s is not available for seance "%(this_seance)s" because (s)he is already requested or confirmed for the seance "%(other_seance)s"') % {'stakeholder':name, 'this_seance': this.seance_id.name, 'other_seance': other_seance.name})
 
@@ -4572,7 +4577,7 @@
             #Passing partner_id to context for purchase order line integrity of Line name
             context.update({'lang':partner.lang, 'partner_id':partner_id})
 
-            product=self.pool.get('product.product').browse(cr,uid, po_line.product_id.id,context=context)
+            product=self.pool.get('product.product').browse(cr, uid, po_line.product_id.id, context=context)
 
 
             line = {

=== modified file 'training_exam/training_exam.py'
--- training_exam/training_exam.py	2011-04-01 10:48:06 +0000
+++ training_exam/training_exam.py	2011-04-07 13:09:27 +0000
@@ -332,7 +332,7 @@
         if context is None:
             context = {}
         values = dict.fromkeys(ids, 0)
-        for obj in self.browse(cr, uid, ids, context=None):
+        for obj in self.browse(cr, uid, ids, context=context):
             if obj.type in ('qcm', 'qcu'):
                 if obj.question_answer_ids:
                     values[obj.id] = reduce(lambda prev, curr: prev + int(curr.is_solution == 'yes'), obj.question_answer_ids, 0)
@@ -639,7 +639,7 @@
         if context is None:
             context = {}
         result = {}
-        for quizz in self.browse(cr, uid, ids):
+        for quizz in self.browse(cr, uid, ids, context=context):
             type = 'automatic'
             for question in quizz.question_ids:
                 if question.question_type == 'plain':
@@ -676,13 +676,13 @@
     #compute the time of questionnaire
     def point_compute(self, cr, uid, ids, name, args, context=None):
         res = dict.fromkeys(ids, '')
-        for questionnaire in self.browse(cr,uid,ids,context=context):
+        for questionnaire in self.browse(cr, uid, ids, context=context):
             res[questionnaire.id] = reduce(lambda acc,question: acc + question.question_id.point, questionnaire.question_ids, 0.0)
         return res or 0.0
 
     def duration_compute(self, cr, uid, ids, name, args, context=None):
         res = dict.fromkeys(ids, '')
-        for questionnaire in self.browse(cr,uid,ids,context=context):
+        for questionnaire in self.browse(cr, uid, ids ,context=context):
             res[questionnaire.id] = reduce(lambda acc,question: acc + question.question_id.duration, questionnaire.question_ids, 0.0)
         return res or 0.0
 
@@ -968,7 +968,7 @@
         # we must apply this pricelist if current partner is one of those
         ocv = {'value':{}}
         if course_id:
-            course = self.pool.get('training.course').browse(cr, uid, course_id)
+            course = self.pool.get('training.course').browse(cr, uid, course_id, context=context)
             if course.category_id and course.category_id.price_list_id:
                 if any(partner.id == partner_id for partner in course.category_id.partner_ids):
                     price_list_id = course.category_id.price_list_id.id
@@ -1107,9 +1107,6 @@
         proxy_adistline = self.pool.get('account.analytic.plan.instance.line')
         workflow = netsvc.LocalService('workflow')
 
-        if not context:
-            context = {}
-
         exam_sl_ids = []
         other_sl_ids = []
 
@@ -1278,13 +1275,15 @@
     _inherit = 'training.participation'
 
     def copy_data(self, cr, uid, object_id, values=None, context=None):
+        if context is None:
+            context = {}
         if not values:
             values = {}
         if 'course_line_ids' not in values:
             values.update({'course_line_ids' : []})
         if 'participation_line_ids' not in values:
             values.update({'participation_line_ids' : []})
-        return super(training_participation_exam, self).copy_data(cr, uid, object_id, values, context)
+        return super(training_participation_exam, self).copy_data(cr, uid, object_id, values, context=context)
 
     def after_exam_sheet_generation(self, cr, uid, participation_id, context=None):
         if context is None:
@@ -1512,6 +1511,8 @@
         return [('type','=','examen'),('state','in',['validated']),('main_course_id','=',participation.course_questionnaire_id.id),('printable','=',True)]
 
     def random_questionnaire_assign(self, cr, uid, ids,  context=None):
+        if context is None:
+            context = {}
         t_quizz = self.pool.get('training.exam.questionnaire')
 
         for p in self.browse(cr, uid, ids,context=context):
@@ -1631,7 +1632,7 @@
         if context is None:
             context = {}
         obj = self.browse(cr, uid, ids[0], context=context)
-        question = self.pool.get('training.exam.question').browse(cr, uid, obj.question_id.id)
+        question = self.pool.get('training.exam.question').browse(cr, uid, obj.question_id.id, context=context)
         return obj.point <=question.point or 0.0
 
     def on_change_question(self, cr, uid, ids, question_id, context=None):
@@ -1639,7 +1640,7 @@
             context = {}
         if not question_id:
             return False
-        question = self.pool.get('training.exam.question').browse(cr, uid, question_id)
+        question = self.pool.get('training.exam.question').browse(cr, uid, question_id, context=context)
         return {
             'value': {
                 'point_question_id': question.point,
@@ -1682,7 +1683,7 @@
         if seance.kind != 'exam':
             return super(training_participation_stakeholder, self)._default_price_compute(cr, uid, job, seance, product_id=product_id, context=None)
         if product_id and isinstance(product_id, (int,long)):
-            product = self.pool.get('product.product').browse(cr, uid, product_id)
+            product = self.pool.get('product.product').browse(cr, uid, product_id, context=context)
         else:
             product = seance._get_product()
         if not product:


Follow ups