159
159
if isinstance(ids, (long, int)):
162
if 'stage_id' in vals or 'planned_hours' in vals or 'user_id' in vals or 'delegated_user_id' in vals or 'project_id' in vals:
162
if 'stage_id' in vals \
163
or 'planned_hours' in vals \
164
or 'user_id' in vals \
165
or 'delegated_user_id' in vals \
166
or 'project_id' in vals \
167
or 'default_resource_plan_line' in vals:
164
169
for t in self.browse(cr, uid, ids, context=context):
168
172
if 'stage_id' in vals:
211
215
plan_input['company_id'] = t.company_id and t.company_id.id or False
217
if 'default_resource_plan_line' in vals:
218
plan_input['default_resource_plan_line'] = vals['default_resource_plan_line']
220
plan_input['default_resource_plan_line'] = \
221
t.default_resource_plan_line and t.default_resource_plan_line.id or False
213
223
stage = stage_obj.browse(cr, uid, plan_input['stage_id'])
214
224
state = stage.state
221
231
#Add or update the resource plan line
222
232
plan_output = self._prepare_resource_plan_line(cr, uid, plan_input, context=context)
223
233
plan_output['task_id'] = t.id
224
if t.default_resource_plan_line:
225
resource_plan_line_obj.write(cr, uid, [t.default_resource_plan_line.id],
234
if plan_input['default_resource_plan_line']:
236
res = super(project_task, self).write(cr, uid, ids, vals, context=context)
238
resource_plan_line_obj.write(cr, uid, [plan_input['default_resource_plan_line']],
226
239
plan_output, context)
228
243
new_resource_plan_line_id = resource_plan_line_obj.create(cr, uid,
231
246
vals['default_resource_plan_line'] = new_resource_plan_line_id
247
return super(project_task, self).write(cr, uid, ids, vals, context=context)
234
250
#Remove the resource plan line
238
254
return super(project_task, self).write(cr, uid, ids, vals, context=context)
240
257
def map_resource_plan_lines(self, cr, uid, old_task_id, new_task_id, context=None):
241
258
""" copy and map tasks from old to new project """
242
259
if context is None:
254
271
new_task.project_id.analytic_account_id.id or False
256
273
default['task_id'] = new_task.id
258
275
for resource_plan_line in task.resource_plan_lines:
276
new_resource_plan_line = resource_plan_line_obj.copy(cr, uid,
277
resource_plan_line.id, default,
279
if new_resource_plan_line:
280
map_resource_plan_line_id[resource_plan_line.id] = new_resource_plan_line
259
282
default_resource_plan_line = \
260
283
task.default_resource_plan_line \
261
284
and task.default_resource_plan_line.id \
263
if resource_plan_line.id is not default_resource_plan_line:
264
new_resource_plan_line = resource_plan_line_obj.copy(cr, uid,
265
resource_plan_line.id, default,
267
if new_resource_plan_line:
268
map_resource_plan_line_id[resource_plan_line.id] = new_resource_plan_line
270
self.write(cr, uid, [new_task_id], {'resource_plan_lines': [(6, 0, map_resource_plan_line_id.values())]})
286
if resource_plan_line.id == default_resource_plan_line:
287
task_vals['default_resource_plan_line'] = new_resource_plan_line
288
if map_resource_plan_line_id:
289
task_vals['resource_plan_lines'] = [(6, 0, map_resource_plan_line_id.values())]
292
self.write(cr, uid, [new_task_id], task_vals, context=context)
273
296
def copy(self, cr, uid, id, default=None, context=None):