Change like that
if vals_line:
self.pool.get('hr.analytic.timesheet').write(cr, uid, [line_id.id], vals_line, context=context)
Why: Openerp have only the fields {'task_id': 6} in vals, so when he build vals_line, val_line is empty and try to do a write with NO fields in, and if val_line before do the write solve the problem for us.
Fast way to solve this problem
go in project_ timesheet/ prohect- timesheet. py
class project_work
def write
Near the end of the function you will see that,
self.pool. get('hr. analytic. timesheet' ).write( cr, uid, [line_id.id], vals_line, context=context)
Change like that pool.get( 'hr.analytic. timesheet' ).write( cr, uid, [line_id.id], vals_line, context=context)
if vals_line:
self.
Why: Openerp have only the fields {'task_id': 6} in vals, so when he build vals_line, val_line is empty and try to do a write with NO fields in, and if val_line before do the write solve the problem for us.