From e880d4d13cfb5c2eb4f7b1ac50ff0c4c9611a943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 21 May 2013 12:36:30 +0200 Subject: [IMP] project_issue: added on_change on use_tasks or use_issues about alias_model. bzr revid: tde@openerp.com-20130521103630-5nub6b10i6jy6a7c --- addons/project_issue/project_issue.py | 8 ++++++++ 1 file changed, 8 insertions(+) (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 517d335aa48..7c55d3ebec1 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -639,6 +639,14 @@ class project_project(osv.Model): elif vals.get('use_issues') and not vals.get('use_tasks'): vals['alias_model'] = 'project.issue' + def on_change_use_tasks_or_issues(self, cr, uid, ids, use_tasks, use_issues, context=None): + values = {} + if use_tasks and not use_issues: + values['alias_model'] = 'project.task' + elif not use_tasks and use_issues: + values['alias_model'] = 'project.issues' + return {'value': values} + def create(self, cr, uid, vals, context=None): self._check_create_write_values(cr, uid, vals, context=context) return super(project_project, self).create(cr, uid, vals, context=context) -- cgit v1.2.3 From 9005541f99ea2077251d36ebb9563ec51934f5cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 19 Jun 2013 13:46:33 +0200 Subject: [FIX] crm, project.task, project.issue, hr_recruitment: fixed quick create in kanban, simplified a bit the code in the various create overrides. bzr revid: tde@openerp.com-20130619114633-pb0rtz0kivlrabcx --- addons/project_issue/project_issue.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 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 1e91371091e..7bdaf8c9581 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -65,15 +65,22 @@ class project_issue(base_stage, osv.osv): def create(self, cr, uid, vals, context=None): if context is None: context = {} - if not vals.get('stage_id'): - ctx = context.copy() - if vals.get('project_id'): - ctx['default_project_id'] = vals['project_id'] - vals['stage_id'] = self._get_default_stage_id(cr, uid, context=ctx) + if vals.get('project_id') and not context.get('default_project_id'): + context['default_project_id'] = vals.get('project_id') + # context: no_log, because subtype already handle this create_context = dict(context, mail_create_nolog=True) return super(project_issue, self).create(cr, uid, vals, context=create_context) + def _get_default_partner(self, cr, uid, context=None): + """ Override of base_stage to add project specific behavior """ + project_id = self._get_default_project_id(cr, uid, context) + if project_id: + partner = self.pool.get('project.project').browse(cr, uid, project_id, context=context).partner_id + if partner: + return partner.id + return super(project_issue, self)._get_default_partner(cr, uid, context=context) + def _get_default_project_id(self, cr, uid, context=None): """ Gives default project by checking if present in the context """ return self._resolve_project_id_from_context(cr, uid, context=context) @@ -215,6 +222,10 @@ class project_issue(base_stage, osv.osv): return res def on_change_project(self, cr, uid, ids, project_id, context=None): + if project_id: + project = self.pool.get('project.project').browse(cr, uid, project_id, context=context) + if project and project.partner_id: + return {'value': {'partner_id': project.partner_id.id}} return {} def _get_issue_task(self, cr, uid, ids, context=None): @@ -309,6 +320,7 @@ class project_issue(base_stage, osv.osv): '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], 'kanban_state': 'normal', + 'user_id': lambda obj, cr, uid, context: uid, } _group_by_full = { -- cgit v1.2.3 From 67e4eff42b1ffbcf5433181bf00bf543f7160ed5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 21 Jun 2013 11:37:32 +0200 Subject: [CLEAN] Some code cleaning before merging. bzr revid: tde@openerp.com-20130621093732-qc9ltxfiemmi421s --- addons/project_issue/project_issue.py | 6 +++--- 1 file changed, 3 insertions(+), 3 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 7bdaf8c9581..77f90b53fb6 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -76,9 +76,9 @@ class project_issue(base_stage, osv.osv): """ Override of base_stage to add project specific behavior """ project_id = self._get_default_project_id(cr, uid, context) if project_id: - partner = self.pool.get('project.project').browse(cr, uid, project_id, context=context).partner_id - if partner: - return partner.id + project = self.pool.get('project.project').browse(cr, uid, project_id, context=context) + if project and project.partner_id: + return project.partner.id return super(project_issue, self)._get_default_partner(cr, uid, context=context) def _get_default_project_id(self, cr, uid, context=None): -- cgit v1.2.3 From 4ee8b2836c74aaf4f3ab35af7030f548061c4235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 21 Jun 2013 12:20:21 +0200 Subject: [FIX] Fixed last commit. bzr revid: tde@openerp.com-20130621102021-mnozkbmz11dg5k9z --- 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 77f90b53fb6..280ad1b343b 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -78,7 +78,7 @@ class project_issue(base_stage, osv.osv): if project_id: project = self.pool.get('project.project').browse(cr, uid, project_id, context=context) if project and project.partner_id: - return project.partner.id + return project.partner_id.id return super(project_issue, self)._get_default_partner(cr, uid, context=context) def _get_default_project_id(self, cr, uid, context=None): -- cgit v1.2.3 From 8fbfc997aebb788d79200e711389817e9ce719df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 26 Jun 2013 15:25:19 +0200 Subject: [REF] project: stage/status refactoring Removed concept of state on project.task (and propagated report) Removed python inheritance towards base_stage (specific code will be re-added) bzr revid: tde@openerp.com-20130626132519-988nfq8pw8h8c8e8 --- addons/project_issue/project_issue.py | 8 -------- 1 file changed, 8 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 33e4fcb409c..4c89c4def60 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -21,7 +21,6 @@ from openerp import SUPERUSER_ID from openerp.addons.base_status.base_stage import base_stage -from openerp.addons.project.project import _TASK_STATE from openerp.addons.crm import crm from datetime import datetime from openerp.osv import fields, osv, orm @@ -247,13 +246,6 @@ class project_issue(base_stage, osv.osv): 'partner_id': fields.many2one('res.partner', 'Contact', select=1), 'company_id': fields.many2one('res.company', 'Company'), 'description': fields.text('Private Note'), - 'state': fields.related('stage_id', 'state', type="selection", store=True, - selection=_TASK_STATE, string="Status", readonly=True, - help='The status is set to \'Draft\', when a case is created.\ - If the case is in progress the status is set to \'Open\'.\ - When the case is over, the status is set to \'Done\'.\ - If the case needs to be reviewed then the status is \ - set to \'Pending\'.'), 'kanban_state': fields.selection([('normal', 'Normal'),('blocked', 'Blocked'),('done', 'Ready for next stage')], 'Kanban State', track_visibility='onchange', help="A Issue's kanban state indicates special situations affecting it:\n" -- cgit v1.2.3 From a497545cfdd5a4d74ca7b6797a6c697e75ee14d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 26 Jun 2013 17:52:17 +0200 Subject: [REF] project_issue: removed state concept, updated views + reports + tracking. bzr revid: tde@openerp.com-20130626155217-333zsa7hj8wjckcn --- addons/project_issue/project_issue.py | 49 +++++++++++------------------------ 1 file changed, 15 insertions(+), 34 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 4c89c4def60..30f8845fa40 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -25,7 +25,6 @@ from openerp.addons.crm import crm from datetime import datetime from openerp.osv import fields, osv, orm from openerp.tools.translate import _ -import binascii import time from openerp import tools from openerp.tools import html2plaintext @@ -48,16 +47,15 @@ class project_issue(base_stage, osv.osv): _inherit = ['mail.thread', 'ir.needaction_mixin'] _track = { - 'state': { - 'project_issue.mt_issue_new': lambda self, cr, uid, obj, ctx=None: obj['state'] in ['new', 'draft'], - 'project_issue.mt_issue_closed': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'done', - 'project_issue.mt_issue_started': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'open', - }, 'stage_id': { - 'project_issue.mt_issue_stage': lambda self, cr, uid, obj, ctx=None: obj['state'] not in ['new', 'draft', 'done', 'open'], + 'project_issue.mt_issue_new': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence == 1, + 'project_issue.mt_issue_stage': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence != 1, + }, + 'user_id': { + 'project_issue.mt_issue_assigned': lambda self, cr, uid, obj, ctx=None: obj.user_id, }, 'kanban_state': { - 'project_issue.mt_issue_blocked': lambda self, cr, uid, obj, ctx=None: obj['kanban_state'] == 'blocked', + 'project_issue.mt_issue_blocked': lambda self, cr, uid, obj, ctx=None: obj.kanban_state == 'blocked', }, } @@ -80,7 +78,7 @@ class project_issue(base_stage, 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, [('state', '=', 'draft')], context=context) + return self.stage_find(cr, uid, [], project_id, [('sequence', '=', 1)], 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' @@ -353,7 +351,7 @@ class project_issue(base_stage, osv.osv): }) vals = { 'task_id': new_task_id, - 'stage_id': self.stage_find(cr, uid, [bug], bug.project_id.id, [('state', '=', 'pending')], context=context), + 'stage_id': self.stage_find(cr, uid, [bug], bug.project_id.id, [('sequence', '=', 1)], context=context), } message = _("Project issue converted to task.") self.message_post(cr, uid, [bug.id], body=message, context=context) @@ -382,18 +380,12 @@ class project_issue(base_stage, osv.osv): context=context) def write(self, cr, uid, ids, vals, context=None): - - #Update last action date every time the user changes the stage + # stage change: update date_last_stage_update if 'stage_id' in vals: - vals['date_action_last'] = time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT) - state = self.pool.get('project.task.type').browse(cr, uid, vals['stage_id'], context=context).state - for issue in self.browse(cr, uid, ids, context=context): - # Change from draft to not draft EXCEPT cancelled: The issue has been opened -> set the opening date - if issue.state == 'draft' and state not in ('draft', 'cancelled'): - vals['date_open'] = time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT) - # Change from not done to done: The issue has been closed -> set the closing date - if issue.state != 'done' and state == 'done': - vals['date_closed'] = time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT) + vals['date_action_last'] = fields.datetime.now() + # user_id change: update date_start + if vals.get('user_id'): + vals['date_start'] = fields.datetime.now() return super(project_issue, self).write(cr, uid, ids, vals, context) @@ -403,13 +395,6 @@ class project_issue(base_stage, osv.osv): task = self.pool.get('project.task').browse(cr, uid, task_id, context=context) return {'value': {'user_id': task.user_id.id, }} - def case_reset(self, cr, uid, ids, context=None): - """Resets case as draft - """ - res = super(project_issue, self).case_reset(cr, uid, ids, context) - self.write(cr, uid, ids, {'date_open': False, 'date_closed': False}) - return res - def get_empty_list_help(self, cr, uid, help, context=None): context['empty_list_help_model'] = 'project.project' context['empty_list_help_id'] = context.get('default_project_id') @@ -458,11 +443,6 @@ class project_issue(base_stage, osv.osv): return stage_ids[0] return False - def case_cancel(self, cr, uid, ids, context=None): - """ Cancels case """ - self.case_set(cr, uid, ids, 'cancelled', {'active': True}, context=context) - return True - def case_escalate(self, cr, uid, ids, context=None): cases = self.browse(cr, uid, ids) for case in cases: @@ -585,7 +565,8 @@ class project(osv.Model): res = dict.fromkeys(ids, 0) issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)]) for issue in self.pool.get('project.issue').browse(cr, uid, issue_ids, context): - if issue.state not in ('done', 'cancelled'): + # TDE CHECK: if issue.state not in ('done', 'cancelled'): + if issue.stage_id and not issue.stage_id.fold: res[issue.project_id.id] += 1 return res -- cgit v1.2.3 From 944f9f7f0bbe7d645b8c7c3524eb8f9c124c821f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 27 Jun 2013 12:05:35 +0200 Subject: [FIX] project_issue: fixed loop, added date_last_stage_update field bzr revid: tde@openerp.com-20130627100535-romfzhxuvb5awls2 --- addons/project_issue/project_issue.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 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 30f8845fa40..ab7d9824fc6 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -257,6 +257,7 @@ class project_issue(base_stage, osv.osv): # Project Issue fields 'date_closed': fields.datetime('Closed', readonly=True,select=True), 'date': fields.datetime('Date'), + 'date_last_stage_update': fields.datetime('Last Stage Update', select=True), 'channel_id': fields.many2one('crm.case.channel', 'Channel', help="Communication channel."), 'categ_ids': fields.many2many('project.category', string='Tags'), 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True), @@ -299,6 +300,7 @@ class project_issue(base_stage, osv.osv): '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], 'kanban_state': 'normal', + 'date_last_stage_update': fields.datetime.now(), } _group_by_full = { @@ -382,7 +384,7 @@ class project_issue(base_stage, osv.osv): def write(self, cr, uid, ids, vals, context=None): # stage change: update date_last_stage_update if 'stage_id' in vals: - vals['date_action_last'] = fields.datetime.now() + vals['date_last_stage_update'] = fields.datetime.now() # user_id change: update date_start if vals.get('user_id'): vals['date_start'] = fields.datetime.now() @@ -551,7 +553,7 @@ class project_issue(base_stage, osv.osv): context = {} res = super(project_issue, self).message_post(cr, uid, thread_id, body=body, subject=subject, type=type, subtype=subtype, parent_id=parent_id, attachments=attachments, context=context, content_subtype=content_subtype, **kwargs) if thread_id: - self.write(cr, SUPERUSER_ID, thread_id, {'date_action_last': time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)}, context=context) + self.write(cr, SUPERUSER_ID, thread_id, {'date_action_last': fields.datetime.now()}, context=context) return res -- cgit v1.2.3 From c8b6f2f370a1e084b2cf04b4a7b56931e3900def Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 27 Jun 2013 13:07:33 +0200 Subject: [REF] project_issue: removed reference to base_stage, removed some unnecessary defaults, removed now unnecessary tests. bzr revid: tde@openerp.com-20130627110733-8zh0xooq71zz2g0j --- addons/project_issue/project_issue.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 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 ab7d9824fc6..7a7d0724161 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -20,7 +20,6 @@ ############################################################################## from openerp import SUPERUSER_ID -from openerp.addons.base_status.base_stage import base_stage from openerp.addons.crm import crm from datetime import datetime from openerp.osv import fields, osv, orm @@ -29,7 +28,7 @@ import time from openerp import tools from openerp.tools import html2plaintext -class project_issue_version(osv.osv): +class project_issue_version(osv.Model): _name = "project.issue.version" _order = "name desc" _columns = { @@ -40,7 +39,7 @@ class project_issue_version(osv.osv): 'active': 1, } -class project_issue(base_stage, osv.osv): +class project_issue(osv.Model): _name = "project.issue" _description = "Project Issue" _order = "priority, create_date desc" @@ -51,9 +50,9 @@ class project_issue(base_stage, osv.osv): 'project_issue.mt_issue_new': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence == 1, 'project_issue.mt_issue_stage': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence != 1, }, - 'user_id': { - 'project_issue.mt_issue_assigned': lambda self, cr, uid, obj, ctx=None: obj.user_id, - }, + # 'user_id': { + # 'project_issue.mt_issue_assigned': lambda self, cr, uid, obj, ctx=None: obj.user_id and obj.user_id.id, + # }, 'kanban_state': { 'project_issue.mt_issue_blocked': lambda self, cr, uid, obj, ctx=None: obj.kanban_state == 'blocked', }, @@ -293,10 +292,7 @@ class project_issue(base_stage, osv.osv): _defaults = { 'active': 1, - 'partner_id': lambda s, cr, uid, c: s._get_default_partner(cr, uid, c), - 'email_from': lambda s, cr, uid, c: s._get_default_email(cr, uid, c), 'stage_id': lambda s, cr, uid, c: s._get_default_stage_id(cr, uid, c), - '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], 'kanban_state': 'normal', @@ -552,7 +548,7 @@ class project_issue(base_stage, osv.osv): if context is None: context = {} res = super(project_issue, self).message_post(cr, uid, thread_id, body=body, subject=subject, type=type, subtype=subtype, parent_id=parent_id, attachments=attachments, context=context, content_subtype=content_subtype, **kwargs) - if thread_id: + if thread_id and subtype: self.write(cr, SUPERUSER_ID, thread_id, {'date_action_last': fields.datetime.now()}, context=context) return res -- cgit v1.2.3 From bf4ada34b4e6bc9793f4870786d579d9dce4c799 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 27 Jun 2013 16:46:47 +0200 Subject: [REF] mail_thread: message_track now uses browse records instead of read results. Updated addons accordingly. Updated tests to test corner cases using False / null browse records. bzr revid: tde@openerp.com-20130627144647-swbj77i84vo9ii0v --- addons/project_issue/project_issue.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 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 33e4fcb409c..a69d9356002 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -50,15 +50,15 @@ class project_issue(base_stage, osv.osv): _track = { 'state': { - 'project_issue.mt_issue_new': lambda self, cr, uid, obj, ctx=None: obj['state'] in ['new', 'draft'], - 'project_issue.mt_issue_closed': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'done', - 'project_issue.mt_issue_started': lambda self, cr, uid, obj, ctx=None: obj['state'] == 'open', + 'project_issue.mt_issue_new': lambda self, cr, uid, obj, ctx=None: obj.state in ['new', 'draft'], + 'project_issue.mt_issue_closed': lambda self, cr, uid, obj, ctx=None: obj.state == 'done', + 'project_issue.mt_issue_started': lambda self, cr, uid, obj, ctx=None: obj.state == 'open', }, 'stage_id': { - 'project_issue.mt_issue_stage': lambda self, cr, uid, obj, ctx=None: obj['state'] not in ['new', 'draft', 'done', 'open'], + 'project_issue.mt_issue_stage': lambda self, cr, uid, obj, ctx=None: obj.state not in ['new', 'draft', 'done', 'open'], }, 'kanban_state': { - 'project_issue.mt_issue_blocked': lambda self, cr, uid, obj, ctx=None: obj['kanban_state'] == 'blocked', + 'project_issue.mt_issue_blocked': lambda self, cr, uid, obj, ctx=None: obj.kanban_state == 'blocked', }, } @@ -578,7 +578,7 @@ class project_issue(base_stage, osv.osv): if context is None: context = {} res = super(project_issue, self).message_post(cr, uid, thread_id, body=body, subject=subject, type=type, subtype=subtype, parent_id=parent_id, attachments=attachments, context=context, content_subtype=content_subtype, **kwargs) - if thread_id: + if thread_id and subtype: self.write(cr, SUPERUSER_ID, thread_id, {'date_action_last': time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)}, context=context) return res -- cgit v1.2.3 From 31c60007a1361a7fca8a9550f6e6f8d34237d005 Mon Sep 17 00:00:00 2001 From: Hardik Ansodariya Date: Tue, 9 Jul 2013 12:03:19 +0530 Subject: [FIXED] project_issue: Kanban state is not being reset when one change the state of issue (Maintenance case: 594481) bzr revid: han@tinyerp.com-20130709063319-87w3rf3b9kl1u056 --- addons/project_issue/project_issue.py | 1 + 1 file changed, 1 insertion(+) (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 280ad1b343b..45de662e7c0 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -406,6 +406,7 @@ class project_issue(base_stage, osv.osv): #Update last action date every time the user changes the stage if 'stage_id' in vals: vals['date_action_last'] = time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT) + vals.update(kanban_state='normal') state = self.pool.get('project.task.type').browse(cr, uid, vals['stage_id'], context=context).state for issue in self.browse(cr, uid, ids, context=context): # Change from draft to not draft EXCEPT cancelled: The issue has been opened -> set the opening date -- cgit v1.2.3 From 6310275541f07446e937b58f86e7a7f0cbc78e71 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 9 Jul 2013 15:38:59 +0200 Subject: [FIX] project, project_issue: fixed get_default_partner not defined anymore, because of the inheritance towards base_stage removal. bzr revid: tde@openerp.com-20130709133859-jy4aqz6tsrtsqv81 --- 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 501202a3791..cc71ae7cfa9 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -75,7 +75,7 @@ class project_issue(osv.Model): project = self.pool.get('project.project').browse(cr, uid, project_id, context=context) if project and project.partner_id: return project.partner_id.id - return super(project_issue, self)._get_default_partner(cr, uid, context=context) + return False def _get_default_project_id(self, cr, uid, context=None): """ Gives default project by checking if present in the context """ -- cgit v1.2.3 From 4b0baa3615aee3e528ccef0b60142ba7acb7976f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 10 Jul 2013 14:25:26 +0200 Subject: [CLEAN] project, project_issue, project_mrp: misc cleaning of code + fixed bug in project_mrp + re-added commentred tests in project_mrp bzr revid: tde@openerp.com-20130710122526-tf87avul7huqgigg --- addons/project_issue/project_issue.py | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 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 cc71ae7cfa9..30ca08c0ae7 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -19,14 +19,14 @@ # ############################################################################## +from datetime import datetime + from openerp import SUPERUSER_ID +from openerp import tools from openerp.addons.crm import crm -from datetime import datetime from openerp.osv import fields, osv, orm -from openerp.tools.translate import _ -import time -from openerp import tools from openerp.tools import html2plaintext +from openerp.tools.translate import _ class project_issue_version(osv.Model): _name = "project.issue.version" @@ -50,24 +50,14 @@ class project_issue(osv.Model): 'project_issue.mt_issue_new': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence == 1, 'project_issue.mt_issue_stage': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence != 1, }, - # 'user_id': { - # 'project_issue.mt_issue_assigned': lambda self, cr, uid, obj, ctx=None: obj.user_id and obj.user_id.id, - # }, + 'user_id': { + 'project_issue.mt_issue_assigned': lambda self, cr, uid, obj, ctx=None: obj.user_id and obj.user_id.id, + }, 'kanban_state': { 'project_issue.mt_issue_blocked': lambda self, cr, uid, obj, ctx=None: obj.kanban_state == 'blocked', }, } - def create(self, cr, uid, vals, context=None): - if context is None: - context = {} - if vals.get('project_id') and not context.get('default_project_id'): - context['default_project_id'] = vals.get('project_id') - - # context: no_log, because subtype already handle this - create_context = dict(context, mail_create_nolog=True) - return super(project_issue, self).create(cr, uid, vals, context=create_context) - def _get_default_partner(self, cr, uid, context=None): """ Override of base_stage to add project specific behavior """ project_id = self._get_default_project_id(cr, uid, context) @@ -389,6 +379,16 @@ class project_issue(osv.Model): return super(project_issue, self).copy(cr, uid, id, default=default, context=context) + def create(self, cr, uid, vals, context=None): + if context is None: + context = {} + if vals.get('project_id') and not context.get('default_project_id'): + context['default_project_id'] = vals.get('project_id') + + # context: no_log, because subtype already handle this + create_context = dict(context, mail_create_nolog=True) + return super(project_issue, self).create(cr, uid, vals, context=create_context) + def write(self, cr, uid, ids, vals, context=None): # stage change: update date_last_stage_update if 'stage_id' in vals: @@ -575,7 +575,6 @@ class project(osv.Model): res = dict.fromkeys(ids, 0) issue_ids = self.pool.get('project.issue').search(cr, uid, [('project_id', 'in', ids)]) for issue in self.pool.get('project.issue').browse(cr, uid, issue_ids, context): - # TDE CHECK: if issue.state not in ('done', 'cancelled'): if issue.stage_id and not issue.stage_id.fold: res[issue.project_id.id] += 1 return res -- cgit v1.2.3 From c63c20e0667bcba22bb6b80b613a7b4e366b472b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 19 Jul 2013 12:04:11 +0200 Subject: [REM] Removed base_stage. One last part of 'generic case management' goes away from OpenERP. bzr revid: tde@openerp.com-20130719100411-59dx6c7wi6n3gf00 --- addons/project_issue/project_issue.py | 1 - 1 file changed, 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 30ca08c0ae7..5289ce2086f 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -59,7 +59,6 @@ class project_issue(osv.Model): } def _get_default_partner(self, cr, uid, context=None): - """ Override of base_stage to add project specific behavior """ project_id = self._get_default_project_id(cr, uid, context) if project_id: project = self.pool.get('project.project').browse(cr, uid, project_id, context=context) -- cgit v1.2.3 From e0e3d985573e0b21c1e5affa57c89d75eb6ef351 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 23 Jul 2013 16:45:07 +0200 Subject: [IMP] mail: refactored check_mail_message_access bzr revid: tde@openerp.com-20130723144507-bwwegheqofs7x1ox --- addons/project_issue/project_issue.py | 12 +----------- 1 file changed, 1 insertion(+), 11 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 30ca08c0ae7..ace27f13dd1 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -45,6 +45,7 @@ class project_issue(osv.Model): _order = "priority, create_date desc" _inherit = ['mail.thread', 'ir.needaction_mixin'] + _mail_post_access = 'read' _track = { 'stage_id': { 'project_issue.mt_issue_new': lambda self, cr, uid, obj, ctx=None: obj.stage_id and obj.stage_id.sequence == 1, @@ -477,17 +478,6 @@ class project_issue(osv.Model): return [issue.project_id.message_get_reply_to()[0] if issue.project_id else False for issue in self.browse(cr, uid, ids, context=context)] - def check_mail_message_access(self, cr, uid, mids, operation, model_obj=None, context=None): - """ mail.message document permission rule: can post a new message if can read - because of portal document. """ - if not model_obj: - model_obj = self - if operation == 'create': - model_obj.check_access_rights(cr, uid, 'read') - model_obj.check_access_rule(cr, uid, mids, 'read', context=context) - else: - return super(project_issue, self).check_mail_message_access(cr, uid, mids, operation, model_obj=model_obj, context=context) - def message_get_suggested_recipients(self, cr, uid, ids, context=None): recipients = super(project_issue, self).message_get_suggested_recipients(cr, uid, ids, context=context) try: -- cgit v1.2.3 From 9194308cd40a3791684155a611ee7f9fd4b94bba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Tue, 13 Aug 2013 11:47:47 +0200 Subject: [FIX] hr_recruitment, project_issue, crm_phonecall: fixes related to the removal of base_state/base_stage and all case_ methods bzr revid: tde@openerp.com-20130813094747-dm06sx2glgdgal9m --- addons/project_issue/project_issue.py | 1 - 1 file changed, 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 81104985c1b..2c1d00ab4d0 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -465,7 +465,6 @@ class project_issue(osv.Model): self.pool.get('project.task').write(cr, uid, [case.task_id.id], {'project_id': data['project_id'], 'user_id': False}) else: raise osv.except_osv(_('Warning!'), _('You cannot escalate this issue.\nThe relevant Project has not configured the Escalation Project!')) - self.case_set(cr, uid, ids, 'draft', data, context=context) return True # ------------------------------------------------------- -- cgit v1.2.3 From c147dd4975e74061676a98d6599432c17a4d5219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Thu, 22 Aug 2013 11:46:13 +0200 Subject: [IMP] crm, hr_recruitment, project_issue: removed message put in description in message_new bzr revid: tde@openerp.com-20130822094613-os846v2g3t2dloo5 --- addons/project_issue/project_issue.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 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 45afe4580dc..f23f6b6a286 100644 --- a/addons/project_issue/project_issue.py +++ b/addons/project_issue/project_issue.py @@ -495,21 +495,19 @@ class project_issue(osv.Model): through message_process. This override updates the document according to the email. """ - if custom_values is None: custom_values = {} - if context is None: context = {} + if custom_values is None: + custom_values = {} + if context is None: + context = {} context['state_to'] = 'draft' - - desc = html2plaintext(msg.get('body')) if msg.get('body') else '' - defaults = { 'name': msg.get('subject') or _("No Subject"), - 'description': desc, 'email_from': msg.get('from'), 'email_cc': msg.get('cc'), 'partner_id': msg.get('author_id', False), 'user_id': False, } - if msg.get('priority'): + if msg.get('priority'): defaults['priority'] = msg.get('priority') defaults.update(custom_values) -- cgit v1.2.3