js files: renamed to https://
[myslice.git] / portal / joinview.py
index 5d2d363..58bf6ba 100644 (file)
@@ -2,7 +2,7 @@ import os.path, re
 import json
 from random import randint
 
-from django.core.mail           import send_mail
+from django.core.mail           import EmailMultiAlternatives
 from django.contrib.auth.models import User
 from django.views.generic       import View
 from django.template.loader     import render_to_string
@@ -13,13 +13,13 @@ from unfold.page                import Page
 from unfold.loginrequired       import FreeAccessView
 from ui.topmenu                 import topmenu_items_live
 
-from manifold.manifoldapi       import execute_admin_query
+from manifoldapi.manifoldapi    import execute_admin_query
 from manifold.core.query        import Query
 
 from portal.models              import PendingUser,PendingAuthority
 from portal.actions             import authority_get_pi_emails, manifold_add_user,manifold_add_account
 
-from theme import ThemeView
+from myslice.theme import ThemeView
 
 # since we inherit from FreeAccessView we cannot redefine 'dispatch'
 # so let's override 'get' and 'post' instead
@@ -45,7 +45,7 @@ class JoinView (FreeAccessView, ThemeView):
         page = Page(request)
         page.add_js_files  ( [ "js/jquery.validate.js", "js/join.js" ] )
         page.add_css_files ( [ "css/onelab.css", "css/registration.css" ] )
-        page.add_css_files ( [ "http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" ] )
+        page.add_css_files ( [ "https://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" ] )
 
         if method == 'POST':
             # xxx tocheck - if authorities is empty, it's no use anyway
@@ -161,25 +161,57 @@ class JoinView (FreeAccessView, ThemeView):
                 user_id = user_detail['user_id']+1 # the user_id for the newly created user in local:user
                 account_params = {'platform_id': 5, 'user_id': user_id, 'auth_type': auth_type, 'config': account_config}
                 manifold_add_account(request,account_params)
+
                 # Send email
-                ctx = {
-                    'first_name'    : reg_fname, 
-                    'last_name'     : reg_lname, 
-                    'authority_hrn' : reg_auth,
-                    'email'         : reg_email,
-                    'user_hrn'      : user_hrn,
-                    'public_key'    : public_key,
-                    }
-                recipients = authority_get_pi_emails(request,reg_auth)
-                
-                # We don't need to send this email to user.
-                # it's for the PI only
-                #if ctx['cc_myself']:
-                #    recipients.append(ctx['email'])
-
-                msg = render_to_string('user_request_email.txt', ctx)
-                send_mail("Onelab New Authority request for %s submitted"%reg_email, msg, 'support@myslice.info', recipients)
+                try: 
+                    ctx = {
+                        'site_name'             : reg_site_name,             
+                        'authority_hrn'         : reg_root_authority_hrn + '.' + reg_site_authority,
+                        'site_abbreviated_name' : reg_site_abbreviated_name, 
+                        'site_url'              : reg_site_url,
+                        'site_latitude'         : reg_site_latitude, 
+                        'site_longitude'        : reg_site_longitude,
+                        'address_line1'         : reg_address_line1,
+                        'address_line2'         : reg_address_line2,
+                        'address_line3'         : reg_address_line3,
+                        'address_city'          : reg_address_city,
+                        'address_postalcode'    : reg_address_postalcode,
+                        'address_state'         : reg_address_state,
+                        'address_country'       : reg_address_country,
+                        'first_name'            : reg_fname, 
+                        'last_name'             : reg_lname, 
+                        'authority_hrn'         : reg_auth,
+                        'email'                 : reg_email,
+                        'user_hrn'              : user_hrn,
+                        'public_key'            : public_key,
+                        }
+                    recipients = authority_get_pi_emails(request,reg_auth)
+                    
+                    # We don't need to send this email to user.
+                    # it's for the PI only
+                    #if ctx['cc_myself']:
+                    #    recipients.append(ctx['email'])
+                    theme.template_name = 'authority_request_email.html'
+                    html_content = render_to_string(theme.template, ctx)
+            
+                    theme.template_name = 'authority_request_email.txt'
+                    text_content = render_to_string(theme.template, ctx)
+            
+                    theme.template_name = 'authority_request_email_subject.txt'
+                    subject = render_to_string(theme.template, ctx)
+                    subject = subject.replace('\n', '')
+            
+                    theme.template_name = 'email_default_sender.txt'
+                    sender =  render_to_string(theme.template, ctx)
+                    sender = sender.replace('\n', '')
+            
+                    msg = EmailMultiAlternatives(subject, text_content, sender, recipients)
+                    msg.attach_alternative(html_content, "text/html")
+                    msg.send()
+    
+                except Exception, e:
+                    print "Failed to send email, please check the mail templates and the SMTP configuration of your server"
+
                 return render(request, 'user_register_complete.html') 
 
         template_env = {