diff --git a/addons/hr/hr_department.py b/addons/hr/hr_department.py
index 596bb80032e..825059bd46b 100644
--- a/addons/hr/hr_department.py
+++ b/addons/hr/hr_department.py
@@ -131,7 +131,7 @@ class res_users(osv.osv):
parent_ids = map(lambda x: x['manager_id'][0], data_dept)
cr.execute('SELECT res.user_id FROM hr_employee AS emp JOIN resource_resource AS res ON res.id=emp.resource_id \
WHERE emp.id IN %s', (tuple(parent_ids),))
- parent_ids = [x[0] for x in cr.fetchall()]
+ parent_ids = [x[0] for x in cr.fetchall() if x[0]]
result[user_id] = parent_ids
return result
diff --git a/addons/project/report/project_report.py b/addons/project/report/project_report.py
index 06ad777069e..f0cfb181f4a 100644
--- a/addons/project/report/project_report.py
+++ b/addons/project/report/project_report.py
@@ -41,7 +41,7 @@ class report_project_task_user(osv.osv):
'hours_effective': fields.float('Effective Hours', readonly=True),
'hours_delay': fields.float('Avg. Plan.-Eff.', readonly=True),
'remaining_hours': fields.float('Remaining Hours', readonly=True),
- 'progress': fields.float('Progress', readonly=True),
+ 'progress': fields.float('Progress', readonly=True, group_operator='avg'),
'total_hours': fields.float('Total Hours', readonly=True),
'closing_days': fields.float('Days to Close', digits=(16,2), readonly=True, group_operator="avg",
help="Number of Days to close the task"),
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index 533c035d7ac..81834ebbdbf 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -301,15 +301,16 @@
purchase.order.line.form2
purchase.order.line
form
+
+
+
+
+
+ Outgoing picking Inherited
+ stock.picking
+ form
+
+
+
+
+
+
+
+
diff --git a/addons/stock/wizard/stock_return_picking.py b/addons/stock/wizard/stock_return_picking.py
index af422b63dd5..e1aa0dc4e13 100644
--- a/addons/stock/wizard/stock_return_picking.py
+++ b/addons/stock/wizard/stock_return_picking.py
@@ -30,27 +30,31 @@ class stock_return_picking(osv.osv_memory):
_description = 'Return Picking'
def default_get(self, cr, uid, fields, context):
- """
+ """
To get default values for the object.
@param self: The object pointer.
@param cr: A database cursor
@param uid: ID of the user currently logged in
- @param fields: List of fields for which we want default values
- @param context: A standard dictionary
- @return: A dictionary which of fields with values.
- """
+ @param fields: List of fields for which we want default values
+ @param context: A standard dictionary
+ @return: A dictionary with default values for all field in ``fields``
+ """
res = super(stock_return_picking, self).default_get(cr, uid, fields, context=context)
record_id = context and context.get('active_id', False) or False
pick_obj = self.pool.get('stock.picking')
pick = pick_obj.browse(cr, uid, record_id)
- for m in [line for line in pick.move_lines]:
- res['return%s'%(m.id)] = m.product_qty
- if pick.invoice_state=='invoiced':
- res['invoice_state'] = '2binvoiced'
- else:
- res['invoice_state'] = 'none'
+ if pick:
+ if 'invoice_state' in fields:
+ if pick.invoice_state=='invoiced':
+ res['invoice_state'] = '2binvoiced'
+ else:
+ res['invoice_state'] = 'none'
+ for line in pick.move_lines:
+ return_id = 'return%s'%(line.id)
+ if return_id in fields:
+ res[return_id] = line.product_qty
return res
-
+
def view_init(self, cr, uid, fields_list, context=None):
"""
Creates view dynamically and adding fields at runtime.