[IMP] remove alias_id field from view when catchall domain is not set.

bzr revid: tpa@tinyerp.com-20120627100931-3cug0k2cvd2fe0qy
This commit is contained in:
Turkesh Patel (Open ERP) 2012-06-27 15:39:31 +05:30
parent 1dadc7c987
commit 486b3e8ec1
7 changed files with 67 additions and 4 deletions

View File

@ -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')

View File

@ -76,7 +76,7 @@
<field name="user_id"/>
<field name="resource_calendar_id"/>
<field name="active"/>
<field name="alias_id" widget="selection" required="0" />
<field name="alias_id" required="0" />
</group>
</group>
<notebook colspan="4">

View File

@ -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')

View File

@ -13,7 +13,7 @@
<sheet>
<group colspan="4" col="4">
<field name="alias_name"/>
<field name="alias_model_id"/>
<field name="alias_model_id" readonly="1"/>
<field name="alias_user_id"/>
<field name="alias_force_thread_id"/>
<field name="alias_defaults"/>

View File

@ -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')

View File

@ -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')

View File

@ -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