From 07b310b3640c1b2494ebeb89ac01d7f9d3606e05 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Wed, 11 Jul 2012 15:21:30 +0200 Subject: [WIP] replace previous categ (inherited from crm.case.categ - using m2o relation) by a new one (project.category - using m2m relation and many2many_tags widget for display) the idea is to give the opportunity to 'tag' a project's tasks and issues instead of classifying them in a single category - display in the kanban view isn't ready yet - demo data will have to be updated accordingly - some code in project_issue/project_issue.py has been commented out: probably dead code, will be reviewed bzr revid: abo@openerp.com-20120711132130-uwlom1xu8rl4cr3k --- addons/project_issue/project_issue.py | 47 +++++++++++++++++------------------ 1 file changed, 23 insertions(+), 24 deletions(-) (limited to 'addons/project_issue/project_issue.py') diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 5f9b0a369ca..ff98ef29cc4 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -236,7 +236,7 @@ class project_issue(base_stage, osv.osv): 'date_closed': fields.datetime('Closed', readonly=True,select=True), 'date': fields.datetime('Date'), 'channel_id': fields.many2one('crm.case.channel', 'Channel', help="Communication channel."), - 'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('object_id.model', '=', 'crm.project.bug')]"), + 'categ_ids': fields.many2many('project.category', 'project_issue_categ_rel', 'project_issue_id', 'project_category_id', 'Categories'), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True), 'version_id': fields.many2one('project.issue.version', 'Version'), 'stage_id': fields.many2one ('project.task.type', 'Stage', @@ -279,7 +279,6 @@ class project_issue(base_stage, osv.osv): 'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c), 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c), 'priority': crm.AVAILABLE_PRIORITIES[2][0], - 'categ_id' : lambda *a: False, } _group_by_full = { @@ -304,11 +303,11 @@ class project_issue(base_stage, osv.osv): def convert_issue_task(self, cr, uid, ids, context=None): if context is None: context = {} - + case_obj = self.pool.get('project.issue') data_obj = self.pool.get('ir.model.data') task_obj = self.pool.get('project.task') - + result = data_obj._get_id(cr, uid, 'project', 'view_task_search_form') res = data_obj.read(cr, uid, result, ['res_id']) id2 = data_obj._get_id(cr, uid, 'project', 'view_task_form2') @@ -352,21 +351,21 @@ class project_issue(base_stage, osv.osv): } - def _convert(self, cr, uid, ids, xml_id, context=None): - data_obj = self.pool.get('ir.model.data') - id2 = data_obj._get_id(cr, uid, 'project_issue', xml_id) - categ_id = False - if id2: - categ_id = data_obj.browse(cr, uid, id2, context=context).res_id - if categ_id: - self.write(cr, uid, ids, {'categ_id': categ_id}) - return True + # def _convert(self, cr, uid, ids, xml_id, context=None): + # data_obj = self.pool.get('ir.model.data') + # id2 = data_obj._get_id(cr, uid, 'project_issue', xml_id) + # categ_id = False + # if id2: + # categ_id = data_obj.browse(cr, uid, id2, context=context).res_id + # if categ_id: + # self.write(cr, uid, ids, {'categ_id': categ_id}) + # return True - def convert_to_feature(self, cr, uid, ids, context=None): - return self._convert(cr, uid, ids, 'feature_request_categ', context=context) + # def convert_to_feature(self, cr, uid, ids, context=None): + # return self._convert(cr, uid, ids, 'feature_request_categ', context=context) - def convert_to_bug(self, cr, uid, ids, context=None): - return self._convert(cr, uid, ids, 'bug_categ', context=context) + # def convert_to_bug(self, cr, uid, ids, context=None): + # return self._convert(cr, uid, ids, 'bug_categ', context=context) def copy(self, cr, uid, id, default=None, context=None): issue = self.read(cr, uid, id, ['name'], context=context) @@ -376,7 +375,7 @@ class project_issue(base_stage, osv.osv): default['name'] = issue['name'] + _(' (copy)') return super(project_issue, self).copy(cr, uid, id, default=default, context=context) - + def write(self, cr, uid, ids, vals, context=None): #Update last action date every time the user change the stage, the state or send a new email logged_fields = ['stage_id', 'state', 'message_ids'] @@ -463,7 +462,7 @@ class project_issue(base_stage, osv.osv): # ------------------------------------------------------- # Mail gateway # ------------------------------------------------------- - + def message_new(self, cr, uid, msg, custom_values=None, context=None): """ Overrides mail_thread message_new that is called by the mailgateway through message_process. @@ -485,7 +484,7 @@ class project_issue(base_stage, osv.osv): custom_values.update(self.message_partner_by_email(cr, uid, msg.get('from'), context=context)) res_id = super(project_issue, self).message_new(cr, uid, msg, custom_values=custom_values, context=context) - self.convert_to_bug(cr, uid, [res_id], context=context) + # self.convert_to_bug(cr, uid, [res_id], context=context) return res_id def message_update(self, cr, uid, ids, msg, update_vals=None, context=None): @@ -515,11 +514,11 @@ class project_issue(base_stage, osv.osv): update_vals[key] = res.group(2).lower() return super(project_issue, self).message_update(cr, uid, ids, update_vals=update_vals, context=context) - + # ------------------------------------------------------- # OpenChatter methods and notifications # ------------------------------------------------------- - + def message_get_subscribers(self, cr, uid, ids, context=None): """ Override to add responsible user. """ user_ids = super(project_issue, self).message_get_subscribers(cr, uid, ids, context=context) @@ -588,11 +587,11 @@ project() class account_analytic_account(osv.osv): _inherit = 'account.analytic.account' _description = 'Analytic Account' - + _columns = { 'use_issues' : fields.boolean('Issues Tracking', help="Check this field if this project manages issues"), } - + def _trigger_project_creation(self, cr, uid, vals, context=None): res = super(account_analytic_account, self)._trigger_project_creation(cr, uid, vals, context=context) return res or vals.get('use_issues') -- cgit v1.2.3 From 3a649f70256749983d7579160509a59d524ddc1c Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Wed, 11 Jul 2012 16:43:04 +0200 Subject: [FIX] can't handle many2many relation in reports bzr revid: abo@openerp.com-20120711144304-a6ab47s9nmz6yj2l --- addons/project_issue/project_issue.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'addons/project_issue/project_issue.py') diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index ff98ef29cc4..9c8abe41216 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -236,7 +236,7 @@ class project_issue(base_stage, osv.osv): 'date_closed': fields.datetime('Closed', readonly=True,select=True), 'date': fields.datetime('Date'), 'channel_id': fields.many2one('crm.case.channel', 'Channel', help="Communication channel."), - 'categ_ids': fields.many2many('project.category', 'project_issue_categ_rel', 'project_issue_id', 'project_category_id', 'Categories'), + 'categ_ids': fields.many2many('project.category', string='Categories'), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True), 'version_id': fields.many2one('project.issue.version', 'Version'), 'stage_id': fields.many2one ('project.task.type', 'Stage', -- cgit v1.2.3 From 99e88da06dc20d3b83d0ec634991bd194307d7b0 Mon Sep 17 00:00:00 2001 From: Antonin Bourguignon Date: Thu, 12 Jul 2012 17:43:36 +0200 Subject: [FIX] remove dead code bzr revid: abo@openerp.com-20120712154336-u45rxpicpijvpo87 --- addons/project_issue/project_issue.py | 17 ----------------- 1 file changed, 17 deletions(-) (limited to 'addons/project_issue/project_issue.py') diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py index 9c8abe41216..a1b27d97c13 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -350,23 +350,6 @@ class project_issue(base_stage, osv.osv): 'nodestroy': True } - - # def _convert(self, cr, uid, ids, xml_id, context=None): - # data_obj = self.pool.get('ir.model.data') - # id2 = data_obj._get_id(cr, uid, 'project_issue', xml_id) - # categ_id = False - # if id2: - # categ_id = data_obj.browse(cr, uid, id2, context=context).res_id - # if categ_id: - # self.write(cr, uid, ids, {'categ_id': categ_id}) - # return True - - # def convert_to_feature(self, cr, uid, ids, context=None): - # return self._convert(cr, uid, ids, 'feature_request_categ', context=context) - - # def convert_to_bug(self, cr, uid, ids, context=None): - # return self._convert(cr, uid, ids, 'bug_categ', context=context) - def copy(self, cr, uid, id, default=None, context=None): issue = self.read(cr, uid, id, ['name'], context=context) if not default: -- cgit v1.2.3