Turkesh Patel (openERP) has proposed merging 
lp:~openerp-dev/openobject-addons/trunk-mail-alias-jam-alias-tpa into 
lp:~openerp-dev/openobject-addons/trunk-mail-alias-jam.

Requested reviews:
  Jigar Amin  (OpenERP) (jam-openerp)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-mail-alias-jam-alias-tpa/+merge/112488

[IMP]: remove alias_id field from view and set model of alias based on selected 
alias in from view of project.
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-mail-alias-jam-alias-tpa/+merge/112488
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openobject-addons/trunk-mail-alias-jam.
=== modified file 'crm/crm.py'
--- crm/crm.py	2012-06-28 04:41:01 +0000
+++ crm/crm.py	2012-06-28 05:11:22 +0000
@@ -21,6 +21,7 @@
 
 import base64
 import time
+from lxml import etree
 from osv import fields
 from osv import osv
 import tools
@@ -158,6 +159,18 @@
             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')

=== modified file 'hr_recruitment/hr_recruitment.py'
--- hr_recruitment/hr_recruitment.py	2012-06-27 06:24:12 +0000
+++ hr_recruitment/hr_recruitment.py	2012-06-28 05:11:22 +0000
@@ -22,7 +22,7 @@
 from base_status.base_stage import base_stage
 import time
 from datetime import datetime, timedelta
-
+from lxml import etree
 from osv import fields, osv
 from crm import crm
 import tools
@@ -555,6 +555,18 @@
         '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')

=== modified file 'mail/mail_alias_view.xml'
--- mail/mail_alias_view.xml	2012-06-22 09:08:19 +0000
+++ mail/mail_alias_view.xml	2012-06-28 05:11:22 +0000
@@ -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"/>

=== modified file 'mail/mail_group.py'
--- mail/mail_group.py	2012-06-27 06:24:12 +0000
+++ mail/mail_group.py	2012-06-28 05:11:22 +0000
@@ -30,6 +30,7 @@
 import StringIO
 import tools
 from tools.translate import _
+from lxml import etree
 
 class mail_group(osv.osv):
     """
@@ -138,6 +139,18 @@
         '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')

=== modified file 'mail/res_users.py'
--- mail/res_users.py	2012-06-28 04:33:00 +0000
+++ mail/res_users.py	2012-06-28 05:11:22 +0000
@@ -21,6 +21,7 @@
 
 from osv import osv, fields
 from tools.translate import _
+from lxml import etree
 
 class res_users(osv.osv):
     """ Update of res.users class
@@ -57,6 +58,18 @@
         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')

=== modified file 'project/project.py'
--- project/project.py	2012-06-27 04:57:35 +0000
+++ project/project.py	2012-06-28 05:11:22 +0000
@@ -217,8 +217,8 @@
         '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_model': fields.selection(_get_alias_model, "Alias Model",select="1"),
+        'alias_id': fields.many2one('mail.alias', 'Mail Alias', ondelete="cascade", required=True),
+        'alias_model': fields.selection(_get_alias_model, "Alias Model",select="1", required=True),
         '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,),
         'followers': fields.function(_get_followers, method=True, fnct_search=_search_followers,
@@ -254,6 +254,21 @@
         (_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

=== modified file 'project_issue/project_issue.py'
--- project_issue/project_issue.py	2012-06-27 04:57:35 +0000
+++ project_issue/project_issue.py	2012-06-28 05:11:22 +0000
@@ -608,6 +608,18 @@
     _constraints = [
         (_check_escalation, 'Error! You cannot assign escalation to the same project!', ['project_escalation_id'])
     ]
+    
+    def write(self, cr, uid, ids, vals, context=None):
+        # if alias_model have been changed then change alias_model_id of alias also.
+        if vals.get('alias_model'):
+            module = 'project'
+            if vals.get('alias_model') == "model_project_issue":
+                module = 'project_issue'
+            model = self.pool.get('ir.model.data').get_object( cr, uid, module, vals.get('alias_model'))
+            alias_id = self.browse(cr, uid, ids[0], context).alias_id
+            self.pool.get('mail.alias').write(cr, uid, [alias_id.id], {'alias_model_id': model.id}, context=context)
+        return super(project, self).write(cr, uid, ids, vals, context=context)
+    
 project()
 
 class account_analytic_account(osv.osv):

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to