Ashvin Rathod (OpenERP) has proposed merging 
lp:~openerp-dev/openobject-addons/trunk-portal_wizard-sbh-send_mail-ara into 
lp:~openerp-dev/openobject-addons/trunk-portal_wizard-sbh.

Requested reviews:
  OpenERP R&D Team (openerp-dev)

For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-portal_wizard-sbh-send_mail-ara/+merge/109806

Hello mam,

portal: send mail for new portal user and improve code.

Thanks,
ara
-- 
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-portal_wizard-sbh-send_mail-ara/+merge/109806
Your team OpenERP R&D Team is requested to review the proposed merge of 
lp:~openerp-dev/openobject-addons/trunk-portal_wizard-sbh-send_mail-ara into 
lp:~openerp-dev/openobject-addons/trunk-portal_wizard-sbh.
=== modified file 'portal/wizard/portal_wizard.py'
--- portal/wizard/portal_wizard.py	2012-06-08 10:08:35 +0000
+++ portal/wizard/portal_wizard.py	2012-06-12 11:09:19 +0000
@@ -35,7 +35,7 @@
 WELCOME_EMAIL_SUBJECT = _("Your OpenERP account at %(company)s")
 WELCOME_EMAIL_BODY = _("""Dear %(name)s,
 
-You have been created an OpenERP account at %(url)s.
+You have been created an OpenERP account of %(portal)s at %(url)s.
 
 Your login account data is:
 Database: %(db)s
@@ -177,19 +177,19 @@
         portal_obj = self.pool.get('res.portal')
         for wiz in self.browse(cr, uid, ids, context):
             # determine existing users
-            portal_user=[user.id for user in wiz.portal_id.group_id.users]
+            portal_users=[portal_user.id for portal_user in wiz.portal_id.group_id.users]
             add_users=[]
-            removeuser=[]
+            remove_users=[]
             new_users_data = []
             for u in wiz.user_ids:
                 login_cond = [('login', 'in', [u.user_email])]
                 existing_uids = user_obj.search(cr, ROOT_UID, login_cond)
                 existing_users = user_obj.browse(cr, ROOT_UID, existing_uids)
-                existing_logins = [user.login for user in existing_users]
-                if existing_uids and existing_uids[0] not in portal_user or existing_uids and u.has_portal_user:
+                existing_logins = [existing_login.login for existing_login in existing_users]
+                if existing_uids and existing_uids[0] not in portal_users or existing_uids and u.has_portal_user:
                     add_users.append(existing_uids[0])
-                if existing_uids and u.has_portal_user==False and existing_uids[0] in portal_user:
-                    removeuser.append(existing_uids[0])
+                if existing_uids and u.has_portal_user==False and existing_uids[0] in portal_users:
+                    remove_users.append(existing_uids[0])
                 if u.user_email not in existing_logins:
                     new_users_data.append({
                             'name': u.name,
@@ -202,38 +202,40 @@
                             'partner_id': u.partner_id and u.partner_id.id,
                         } )
                     
-            for data in new_users_data:
+            for new_user_data in new_users_data:
                 portal_obj.write(cr, ROOT_UID, [wiz.portal_id.id],
-                    {'users': [(0, 0, data)]}, context0)
+                    {'users': [(0, 0, new_user_data)]}, context0)
                 
-                created_user = user_obj.search(cr, ROOT_UID, [('user_email','=', data['login'])])
+                created_user = user_obj.search(cr, ROOT_UID, [('user_email','=', new_user_data['login']),('partner_id','=', new_user_data['partner_id'])])
                 add_users.append(created_user[0])
-                    
-                    
-            if add_users and add_users not in portal_user:
+                
+            #add the user relationship in portal.        
+            if add_users and add_users not in portal_users:
                 portal_obj.write(cr, ROOT_UID, [wiz.portal_id.id],
                     {'users': [(6, 0, add_users)]}, context0)
-
+                
             #delete the user relationship from portal.
-            if removeuser:
-                portal_obj.write(cr, ROOT_UID, [wiz.portal_id.id],
-                    {'users': [(3, user_data) for user_data in removeuser]}, context0)
+            portal_obj.write(cr, ROOT_UID, [wiz.portal_id.id],
+                {'users': [(3, user_data) for user_data in remove_users]}, context0)
                 
             #unlink res user when portal user not in any portal.
             all_portal_user = self.get_all_portal_user(cr)
-            for data in removeuser:
-                if data not in all_portal_user:
-                    user_obj.unlink(cr, ROOT_UID, [data])
+            user_obj.unlink(cr, ROOT_UID, [remove_user for remove_user in remove_users if remove_user not in all_portal_user])
 
             data = {
+                'portal':wiz.portal_id.name,
                 'company': user.company_id.name,
                 'message': wiz.message or "",
                 'url': wiz.portal_id.url or _("(missing url)"),
                 'db': cr.dbname,
             }
+
             mail_message_obj = self.pool.get('mail.message')
-            dest_uids = user_obj.search(cr, ROOT_UID, login_cond)
-            dest_users = user_obj.browse(cr, ROOT_UID, dest_uids)
+            dest_users = []
+            for dest_uid in add_users:
+                if dest_uid not in portal_users:
+                    dest_users.append(user_obj.browse(cr, ROOT_UID, dest_uid))
+                
             for dest_user in dest_users:
                 context['lang'] = dest_user.context_lang
                 data['login'] = dest_user.login
@@ -253,8 +255,6 @@
 
 wizard()
 
-
-
 class wizard_user(osv.osv_memory):
     """
         A model to configure users in the portal wizard.
@@ -296,7 +296,4 @@
     
 wizard_user()
 
-
-
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file

_______________________________________________
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