diff options
Diffstat (limited to 'addons/project/project.py')
| -rw-r--r-- | addons/project/project.py | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/addons/project/project.py b/addons/project/project.py index b1461da424c..96bf2f30fdc 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -26,10 +26,10 @@ from datetime import datetime, date from tools.translate import _ from osv import fields, osv -class project_project(osv.osv): - _name = 'project.project' - -project_project() +# I think we can remove this in v6.1 since VMT's improvements in the framework ? +#class project_project(osv.osv): +# _name = 'project.project' +#project_project() class project_task_type(osv.osv): _name = 'project.task.type' @@ -39,13 +39,12 @@ class project_task_type(osv.osv): 'name': fields.char('Stage Name', required=True, size=64, translate=True), 'description': fields.text('Description'), 'sequence': fields.integer('Sequence'), + 'project_default': fields.boolean('Common to All Projects', help="If you check this field, this stage will be proposed by default on each new project. It will not assign this stage to existing projects."), 'project_ids': fields.many2many('project.project', 'project_task_type_rel', 'type_id', 'project_id', 'Projects'), } - _defaults = { 'sequence': 1 } - project_task_type() class project(osv.osv): @@ -56,7 +55,7 @@ class project(osv.osv): def search(self, cr, user, args, offset=0, limit=None, order=None, context=None, count=False): if user == 1: return super(project, self).search(cr, user, args, offset=offset, limit=limit, order=order, context=context, count=count) - if context and context.has_key('user_prefence') and context['user_prefence']: + if context and context.get('user_preference'): cr.execute("""SELECT project.id FROM project_project project LEFT JOIN account_analytic_account account ON account.id = project.analytic_account_id LEFT JOIN project_user_rel rel ON rel.project_id = project.analytic_account_id @@ -119,7 +118,7 @@ class project(osv.osv): def unlink(self, cr, uid, ids, *args, **kwargs): for proj in self.browse(cr, uid, ids): if proj.tasks: - raise osv.except_osv(_('Operation Not Permitted !'), _('You can not delete a project with tasks. I suggest you to deactivate it.')) + raise osv.except_osv(_('Operation Not Permitted !'), _('You cannot delete a project containing tasks. I suggest you to desactivate it.')) return super(project, self).unlink(cr, uid, ids, *args, **kwargs) _columns = { @@ -150,11 +149,16 @@ class project(osv.osv): 'warn_footer': fields.text('Mail Footer', help="Footer added at the beginning of the email for the warning message sent to the customer when a task is closed.", states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'type_ids': fields.many2many('project.task.type', 'project_task_type_rel', 'project_id', 'type_id', 'Tasks Stages', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), } + def _get_type_common(self, cr, uid, context): + ids = self.pool.get('project.task.type').search(cr, uid, [('project_default','=',1)], context=context) + return ids + _order = "sequence" _defaults = { 'active': True, 'priority': 1, 'sequence': 10, + 'type_ids': _get_type_common } # TODO: Why not using a SQL contraints ? @@ -586,11 +590,12 @@ class task(osv.osv): 'name': _('Send Email after close task'), 'view_type': 'form', 'view_mode': 'form', - 'res_model': 'project.task.close', + 'res_model': 'mail.compose.message', 'type': 'ir.actions.act_window', 'target': 'new', 'nodestroy': True, - 'context': {'active_id': task.id} + 'context': {'active_id': task.id, + 'active_model': 'project.task'} } return res |
