[REV] project: like before for CRM (see previous commit) reverted

most changes about stages.

Override in project_mrp is back therefore.

bzr revid: tde@openerp.com-20131023113716-jw8jh1jvn4dgpcyr
This commit is contained in:
Thibault Delavallée 2013-10-23 13:37:16 +02:00
parent 8ce54029cf
commit d56d97ec62
6 changed files with 28 additions and 17 deletions

View File

@ -44,10 +44,6 @@ class project_task_type(osv.osv):
'fold': fields.boolean('Folded in Kanban View',
help='This stage is folded in the kanban view when'
'there are no records in that stage to display.'),
'closed': fields.boolean('Closing Stage',
help='Indicates whether this field is the end of'
'the maangement process. This is for example a'
'stage considering the record as done or canceled.'),
}
_defaults = {
@ -271,7 +267,7 @@ class project(osv.osv):
'task_count': fields.function(_task_count, type='integer', string="Open Tasks",
deprecated="This field will be removed in OpenERP v8. Use task_ids one2many field instead."),
'task_ids': fields.one2many('project.task', 'project_id',
domain=[('stage_id.closed', '=', False)]),
domain=[('stage_id.fold', '=', False)]),
'color': fields.integer('Color Index'),
'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="restrict", required=True,
help="Internal email associated with this project. Incoming emails are automatically synchronized"
@ -563,8 +559,9 @@ class task(osv.osv):
_mail_post_access = 'read'
_track = {
'stage_id': {
'project.mt_task_new': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence == 1,
'project.mt_task_stage': lambda self, cr, uid, obj, ctx=None: obj.stage_id.sequence != 1,
# this is only an heuristics; depending on your particular stage configuration it may not match all 'new' stages
'project.mt_task_new': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence <= 1,
'project.mt_task_stage': lambda self, cr, uid, obj, ctx=None: obj.stage_id.sequence > 1,
},
'user_id': {
'project.mt_task_assigned': lambda self, cr, uid, obj, ctx=None: obj.user_id and obj.user_id.id,
@ -589,7 +586,7 @@ class task(osv.osv):
def _get_default_stage_id(self, cr, uid, context=None):
""" Gives default stage_id """
project_id = self._get_default_project_id(cr, uid, context=context)
return self.stage_find(cr, uid, [], project_id, [('sequence', '=', '1')], context=context)
return self.stage_find(cr, uid, [], project_id, [('fold', '=', False)], context=context)
def _resolve_project_id_from_context(self, cr, uid, context=None):
""" Returns ID of project based on the value of 'default_project_id'
@ -1001,7 +998,7 @@ class task(osv.osv):
def set_remaining_time(self, cr, uid, ids, remaining_time=1.0, context=None):
for task in self.browse(cr, uid, ids, context=context):
if (task.stage_id and task.stage_id.sequence == 1) or (task.planned_hours == 0.0):
if (task.stage_id and task.stage_id.sequence <= 1) or (task.planned_hours == 0.0):
self.write(cr, uid, [task.id], {'planned_hours': remaining_time}, context=context)
self.write(cr, uid, ids, {'remaining_hours': remaining_time}, context=context)
return True

View File

@ -19,7 +19,7 @@
<field name="name" string="Tasks"/>
<field name="categ_ids"/>
<filter string="Unassigned" name="unassigned" domain="[('user_id', '=', False)]"/>
<filter string="New" name="draft" domain="[('stage_id.sequence', '=', 1)]"/>
<filter string="New" name="draft" domain="[('stage_id.sequence', '&lt;=', 1)]"/>
<separator/>
<filter string="My Tasks" domain="[('user_id','=',uid)]"/>
<separator/>
@ -687,11 +687,10 @@
<group>
<field name="name"/>
<field name="sequence"/>
<field name="case_default"/>
</group>
<group>
<field name="case_default"/>
<field name="fold"/>
<field name="closed"/>
</group>
</group>
<field name="description" placeholder="Add a description..."/>

View File

@ -75,7 +75,7 @@ class report_project_task_user(osv.osv):
date_trunc('day',t.date_last_stage_update) as date_last_stage_update,
to_date(to_char(t.date_deadline, 'dd-MM-YYYY'),'dd-MM-YYYY') as date_deadline,
-- sum(cast(to_char(date_trunc('day',t.date_end) - date_trunc('day',t.date_start),'DD') as int)) as no_of_days,
abs((extract('epoch' from (t.date_end-t.date_start)))/(3600*24)) as no_of_days,
abs((extract('epoch' from (t.write_date-t.date_start)))/(3600*24)) as no_of_days,
t.user_id,
progress as progress,
t.project_id,
@ -89,9 +89,9 @@ class report_project_task_user(osv.osv):
total_hours as total_hours,
t.delay_hours as hours_delay,
planned_hours as hours_planned,
(extract('epoch' from (t.date_end-t.create_date)))/(3600*24) as closing_days,
(extract('epoch' from (t.write_date-t.create_date)))/(3600*24) as closing_days,
(extract('epoch' from (t.date_start-t.create_date)))/(3600*24) as opening_days,
abs((extract('epoch' from (t.date_deadline-t.date_end)))/(3600*24)) as delay_endings_days
abs((extract('epoch' from (t.date_deadline-t.write_date)))/(3600*24)) as delay_endings_days
FROM project_task t
WHERE t.active = 'true'
GROUP BY

View File

@ -17,7 +17,6 @@
<tasks>
<task type="zoom" name="tasks">
<task_name type="field" name="name"/>
<task_status type="field" name="state" />
<task_descritpion type="field" name="description"/>
<task_sequence type="field" name="sequence"/>
<task_priority type="field" name="priority"/>

View File

@ -586,7 +586,7 @@ class project(osv.Model):
'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues",
deprecated="This field will be removed in OpenERP v8. Use issue_ids one2many field instead."),
'issue_ids': fields.one2many('project.issue', 'project_id',
domain=[('stage_id.closed', '=', False)])
domain=[('stage_id.fold', '=', False)])
}
def _check_escalation(self, cr, uid, ids, context=None):

View File

@ -23,6 +23,22 @@ from openerp.osv import fields, osv
from openerp import netsvc
class ProjectTaskStageMrp(osv.Model):
""" Override project.task.type model to add a 'closed' boolean field allowing
to know that tasks in this stage are considered as closed. Indeed since
OpenERP 8.0 status is not present on tasks anymore, only stage_id. """
_name = 'project.task.type'
_inherit = 'project.task.type'
_columns = {
'closed': fields.boolean('Close', help="Tasks in this stage are considered as closed."),
}
_defaults = {
'closed': False,
}
class project_task(osv.osv):
_name = "project.task"
_inherit = "project.task"