From 486b3e8ec1da61d3c65dfa780e749ac11d79bc61 Mon Sep 17 00:00:00 2001 From: "Turkesh Patel (Open ERP)" Date: Wed, 27 Jun 2012 15:39:31 +0530 Subject: [PATCH] [IMP] remove alias_id field from view when catchall domain is not set. bzr revid: tpa@tinyerp.com-20120627100931-3cug0k2cvd2fe0qy --- addons/crm/crm.py | 14 +++++++++++++- addons/crm/crm_view.xml | 2 +- addons/hr_recruitment/hr_recruitment.py | 12 ++++++++++++ addons/mail/mail_alias_view.xml | 2 +- addons/mail/mail_group.py | 12 ++++++++++++ addons/mail/res_users.py | 12 ++++++++++++ addons/project/project.py | 17 ++++++++++++++++- 7 files changed, 67 insertions(+), 4 deletions(-) diff --git a/addons/crm/crm.py b/addons/crm/crm.py index 88d70a61935..ba2f59dbe8d 100644 --- a/addons/crm/crm.py +++ b/addons/crm/crm.py @@ -121,7 +121,7 @@ class crm_case_section(osv.osv): 'note': fields.text('Description'), 'working_hours': fields.float('Working Hours', digits=(16,2 )), 'stage_ids': fields.many2many('crm.case.stage', 'section_stage_rel', 'section_id', 'stage_id', 'Stages'), - 'alias_id': fields.many2one('mail.alias', 'Mail Alias'), + 'alias_id': fields.many2one('mail.alias', 'Mail Alias', ondelete="cascade", required=True), } def _get_stage_common(self, cr, uid, context): @@ -158,6 +158,18 @@ class crm_case_section(osv.osv): res.append((record['id'], name)) return res + def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): + res = super(crm_case_section,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu) + if view_type == 'form': + domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context) + if not domain: + doc = etree.XML(res['arch']) + alias_node = doc.xpath("//field[@name='alias_id']")[0] + parent = alias_node.getparent() + parent.remove(alias_node) + res['arch'] = etree.tostring(doc) + return res + def create(self, cr, uid, vals, context=None): model_pool = self.pool.get('ir.model.data') alias_pool = self.pool.get('mail.alias') diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml index b0db330cca9..d0e1ff72344 100644 --- a/addons/crm/crm_view.xml +++ b/addons/crm/crm_view.xml @@ -76,7 +76,7 @@ - + diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py index d07236341dd..960f24f50b5 100644 --- a/addons/hr_recruitment/hr_recruitment.py +++ b/addons/hr_recruitment/hr_recruitment.py @@ -555,6 +555,18 @@ class hr_job(osv.osv): 'alias_id': fields.many2one('mail.alias', 'Mail Alias', ondelete="cascade", required=True), } + def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): + res = super(hr_job,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu) + if view_type == 'form': + domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context) + if not domain: + doc = etree.XML(res['arch']) + alias_node = doc.xpath("//field[@name='alias_id']")[0] + parent = alias_node.getparent() + parent.remove(alias_node) + res['arch'] = etree.tostring(doc) + return res + def create(self, cr, uid, vals, context=None): model_pool = self.pool.get('ir.model.data') alias_pool = self.pool.get('mail.alias') diff --git a/addons/mail/mail_alias_view.xml b/addons/mail/mail_alias_view.xml index 5e59dfe8e0f..c9b130c6a74 100644 --- a/addons/mail/mail_alias_view.xml +++ b/addons/mail/mail_alias_view.xml @@ -13,7 +13,7 @@ - + diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index 9da83dd12d3..fbbdb85d9d1 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -138,6 +138,18 @@ class mail_group(osv.osv): 'photo': _get_default_photo, } + def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): + res = super(mail_group,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu) + if view_type == 'form': + domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context) + if not domain: + doc = etree.XML(res['arch']) + alias_node = doc.xpath("//field[@name='alias_id']")[0] + parent = alias_node.getparent() + parent.remove(alias_node) + res['arch'] = etree.tostring(doc) + return res + def create(self, cr, uid, vals, context=None): model_pool = self.pool.get('ir.model.data') alias_pool = self.pool.get('mail.alias') diff --git a/addons/mail/res_users.py b/addons/mail/res_users.py index 358d50b2edc..822096816c5 100644 --- a/addons/mail/res_users.py +++ b/addons/mail/res_users.py @@ -57,6 +57,18 @@ class res_users(osv.osv): self.SELF_WRITEABLE_FIELDS.append('notification_email_pref') return init_res + def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): + res = super(res_users,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu) + if view_type == 'form': + domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context) + if not domain: + doc = etree.XML(res['arch']) + alias_node = doc.xpath("//field[@name='alias_id']")[0] + parent = alias_node.getparent() + parent.remove(alias_node) + res['arch'] = etree.tostring(doc) + return res + def create(self, cr, uid, data, context=None): # create default alias same as the login model_pool = self.pool.get('ir.model.data') diff --git a/addons/project/project.py b/addons/project/project.py index b0337a4c88b..a071f527abf 100644 --- a/addons/project/project.py +++ b/addons/project/project.py @@ -217,7 +217,7 @@ class project(osv.osv): 'type_ids': fields.many2many('project.task.type', 'project_task_type_rel', 'project_id', 'type_id', 'Tasks Stages', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}), 'task_count': fields.function(_task_count, type='integer', string="Open Tasks"), 'color': fields.integer('Color Index'), - 'alias_id': fields.many2one('mail.alias', 'Mail Alias'), + 'alias_id': fields.many2one('mail.alias', 'Mail Alias', ondelete="cascade", required=True), 'alias_model': fields.selection(_get_alias_model, "Alias Model",select="1"), 'privacy_visibility': fields.selection([('public','Public'), ('followers','Followers Only')], 'Privacy / Visibility'), 'state': fields.selection([('template', 'Template'),('draft','New'),('open','In Progress'), ('cancelled', 'Cancelled'),('pending','Pending'),('close','Closed')], 'Status', required=True,), @@ -254,6 +254,21 @@ class project(osv.osv): (_check_dates, 'Error! project start-date must be lower then project end-date.', ['date_start', 'date']) ] + def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False): + res = super(project,self).fields_view_get(cr, uid, view_id, view_type, context, toolbar=toolbar, submenu=submenu) + if view_type == 'form': + domain = self.pool.get("ir.config_parameter").get_param(cr, uid, "mail.catchall.domain", context=context) + if not domain: + doc = etree.XML(res['arch']) + alias_node = doc.xpath("//field[@name='alias_id']")[0] + parent = alias_node.getparent() + parent.remove(alias_node) + model_node = doc.xpath("//field[@name='alias_model']")[0] + parent = model_node.getparent() + parent.remove(model_node) + res['arch'] = etree.tostring(doc) + return res + def set_template(self, cr, uid, ids, context=None): res = self.setActive(cr, uid, ids, value=False, context=context) return res