X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=portal%2Fjoinview.py;h=d4e4af5a249e2028491220b86a650a28b453f456;hb=refs%2Fheads%2Fonelab;hp=d28daba9442f5544bf239a5fa7a99f1cb291e5be;hpb=8441a4b2b81aa0543fa048b6ad2a59934c368769;p=myslice.git diff --git a/portal/joinview.py b/portal/joinview.py index d28daba9..d4e4af5a 100644 --- a/portal/joinview.py +++ b/portal/joinview.py @@ -9,7 +9,6 @@ from django.views.generic import View from django.template.loader import render_to_string from django.shortcuts import render from django.contrib.auth import get_user_model -from django.contrib.sites.models import Site from unfold.page import Page from unfold.loginrequired import FreeAccessView @@ -22,6 +21,9 @@ from portal.models import PendingUser,PendingAuthority from portal.actions import authority_get_pi_emails, manifold_add_user,manifold_add_account, create_pending_user from myslice.theme import ThemeView +from myslice.settings import logger + +import activity.institution # since we inherit from FreeAccessView we cannot redefine 'dispatch' # so let's override 'get' and 'post' instead @@ -139,7 +141,7 @@ class JoinView (FreeAccessView, ThemeView): site_url = reg_site_url, site_latitude = reg_site_latitude, site_longitude = reg_site_longitude, - address_line1 = reg_address_line1, + address_line1 = reg_email, # XXX field name must be renamed. Email needed 4 rejection email. address_line2 = reg_address_line2, address_line3 = reg_address_line3, address_city = reg_address_city, @@ -152,9 +154,12 @@ class JoinView (FreeAccessView, ThemeView): reg_password = request.POST['pi_password'] salt = randint(1,100000) - # get the domain url - current_site = Site.objects.get_current() - current_site = current_site.domain + + if request.is_secure(): + current_site = 'https://' + else: + current_site = 'http://' + current_site += request.META['HTTP_HOST'] email_hash = md5(str(salt)+reg_email).hexdigest() user_request = { @@ -171,7 +176,7 @@ class JoinView (FreeAccessView, ThemeView): 'user_hrn' : user_hrn, 'pi' : [reg_auth], 'auth_type' : 'managed', - 'validation_link': 'http://' + current_site + '/portal/email_activation/'+ email_hash + 'validation_link': current_site + '/portal/email_activation/'+ email_hash } @@ -195,14 +200,7 @@ class JoinView (FreeAccessView, ThemeView): '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, @@ -211,34 +209,36 @@ class JoinView (FreeAccessView, ThemeView): 'user_hrn' : user_hrn, 'public_key' : public_key, } - recipients = authority_get_pi_emails(request,reg_auth) + + #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) + self.template_name = 'authority_request_email.html' + html_content = render_to_string(self.template, ctx) - theme.template_name = 'authority_request_email.txt' - text_content = render_to_string(theme.template, ctx) + self.template_name = 'authority_request_email.txt' + text_content = render_to_string(self.template, ctx) - theme.template_name = 'authority_request_email_subject.txt' - subject = render_to_string(theme.template, ctx) + self.template_name = 'authority_request_email_subject.txt' + subject = render_to_string(self.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) + #theme.template_name = 'email_default_sender.txt' + #sender = render_to_string(theme.template, ctx) + #sender = sender.replace('\n', '') + sender = reg_email + + msg = EmailMultiAlternatives(subject, text_content, sender, ['support@onelab.eu']) 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" - + logger.error("Failed to send email, please check the mail templates and the SMTP configuration of your server") + import traceback + logger.error(traceback.format_exc()) + self.template_name = 'join_complete.html' + # log institution activity + activity.institution.joined(self.request) return render(request, self.template, {'theme': self.theme}) #return render(request, 'user_register_complete.html') @@ -269,4 +269,6 @@ class JoinView (FreeAccessView, ThemeView): 'theme': self.theme } template_env.update(page.prelude_env ()) + # log institution activity + activity.institution.join(self.request) return render(request, 'join_view.html',template_env)