Exemplo n.º 1
0
def SignUpView(request):
    template_name = 'accounts/index.html'

    if request.method == 'POST':
        form = SignUpForm(request.POST, request.FILES)
        if form.is_valid():
            form1 = form.save(commit=False)
            email = form.cleaned_data['email']
            if email and User.objects.filter(email=email).exists():
                messages.success(
                    request, "Email address" + " " + email + " " +
                    "Already Registered.")
                return render(request, template_name, {'form': form})
            form1.save()
            from_email = settings.EMAIL_HOST_USER
            to_list = [email]
            send_mail(subject,
                      message,
                      from_email,
                      to_list,
                      fail_silently=True)
            messages.success(request,
                             "Your account has been created Successfully")
            return redirect('accounts:profile')
        return render(request, template_name, {'form': form})
    else:
        form = SignUpForm
        return render(request, template_name, {'form': form})
Exemplo n.º 2
0
 def test_invalid_signup_form(self):
     user = User.objects.create_user('John', '*****@*****.**', 'johnpassword')
     user.save()
     data = {'username': '******', 'password1': 'johnpassword', 'password1': 'johnpassword',
             'email': "*****@*****.**"}
     form = SignUpForm(data=data)
     self.assertFalse(form.is_valid())
Exemplo n.º 3
0
def register_view(request):
    if request.method == 'GET':
        form = SignUpForm()
        return render(request, 'register.html', context={'form': form})
    elif request.method == 'POST':
        form = SignUpForm(data=request.POST)
        if form.is_valid():
            user = User(
                 username=form.cleaned_data.get('username'),
                 first_name=form.cleaned_data.get('first_name'),
                 last_name=form.cleaned_data.get('last_name'),
                 email=form.cleaned_data.get('email'),
                 is_active=False
            )
            user.set_password(form.cleaned_data.get('password'))
            user.save()
            Profile.objects.create(user=user)
            token = Token.objects.create(user=user)

            activation_url = HOST_NAME + reverse('accounts:user_activate', kwargs={'token': token})
            print(activation_url)
            try:
                user.email_user(
                    'Вы зарегистрировались на сайте localhost:8000.',
                    'Для активации перейдите по ссылке: ' + activation_url
                )
            except ConnectionRefusedError:
                print('Could not send email. Server error.')

            return redirect('webapp:index')
        else:
            return render(request, 'register.html', context={'form': form})
Exemplo n.º 4
0
    def post(self, request, *args, **kwargs):
        #value = {'username':"",'email':"",'first_name':"",'last_name':"",'password1':"Ashesh1234",'password2':"Ashesh1234"}
        form = SignUpForm(request.POST)
        template_name = 'accounts/success.html'
        if form.is_valid():
            user = form.save(commit=False)
            raw_password = form.cleaned_data['password1']
            #raw_password =  User.objects.make_random_password(length=8, allowed_chars="abcdefghjkmnpqrstuvwxyz01234567889!@#$%^&*")
            username = form.cleaned_data['username']
            user.set_password(raw_password)
            user.save()
            subject = "Congratulation you are Inside the Trashcan Board"
            from_email = settings.EMAIL_HOST_USER
            to_mail = [user.email]
            signup_message = """ Wellcome to TrashCan SmartWaste management system. To configure you profile please visit http://127.0.0.1:8080/login \nUsername:""" + username + """\nPassword:""" + raw_password
            send_mail(subject=subject,
                      from_email=from_email,
                      recipient_list=to_mail,
                      message=signup_message,
                      fail_silently=False)

            return redirect('/success/')

        else:
            return render(request, 'accounts/signup.html', {'form': form})
Exemplo n.º 5
0
def signup(request):
    if request.user.is_authenticated:
        return redirect('/')
    
    else:
        if request.method == 'POST':
            form = SignUpForm(request.POST)
            if not form.is_valid():
                return render(request, 'accounts/signup.html', { 'forms': form })

            else:
                # check for terms of services
                # if user agree in terms then proceed
                #if request.POST['tosCheckBox']:
                
                email = form.cleaned_data.get('email')
                password = form.cleaned_data.get('password')

                # create record for this user
                # auto subscriber for now
                User.objects.create_user(password=password, email=email)
                #EmailSubscriber.objects.create(email=email)

                # authenticate then login
                user = authenticate(email=email, password=password)
                login(request, user)
                return redirect('application_events:thanksfor', thanks_for = 'registered')

        else:
            return render(request, 'accounts/signup.html', { 'forms': SignUpForm() })
Exemplo n.º 6
0
def signup(request):
    # if you are logged-in you shouldnt be able to visit the signup URL
    if request.user.is_authenticated:
        return redirect('dashboard')
    else:
        if request.method == 'POST':
            form = SignUpForm(request.POST)
            if form.is_valid():
                # form is a valid response then save the data
                user = User.objects.create_user(
                    email=(form.cleaned_data['email']).casefold(),
                    password=form.cleaned_data['password1'],
                )
                # auth.login(request, user)
                # return redirect('dashboard')
                messages.success(
                    request,
                    'Account creation was successful. Please, login to dashboard'
                )
                return redirect('login')
            else:
                # Form has error relay the error to the user
                context = {'form': form}
                return render(request, 'accounts/signup.html', context)
        else:
            return render(request, 'accounts/signup.html')
Exemplo n.º 7
0
def sign_up(request2):
    # form_class = UserCreationForm
    # success_url = reverse_lazy('login')
    # template_name = 'signup.html'
    # form = SignUpForm()
    # return render(request, 'SignUp.html', {form:'form'})

    if request2.method == 'POST':
        form = SignUpForm(request2.POST)
        if form.is_valid():
            username_temp = request.POST.get('username')
            password_temp = request.POST.get('password1')
            balance_temp = request.POST.get('balance')

            user, created = User.objects.get_or_create(username=username_temp,
                                                       email='NA')
            if created:
                user.set_password(password_temp)
            profile = Profile.objects.filter(user=user)
            profile.balance = balance_temp
            profile.username = username_temp
            user.save()
            return render(request, 'Home.html')
        else:
            return render(request, 'SignUp.html', {form: 'form'})
Exemplo n.º 8
0
 def test_validate_username_duplication(self):
     f = SignUpForm({"username":"******"})
     self.assertFalse(f.is_valid())
     self.assertIn(
         "User with such username or email already exists",
         f.errors["__all__"]
     )
Exemplo n.º 9
0
def sign_up(request):
    '''Returns a rendered html page the user can use to sign up for an
    account. Currently does not validate the sign up information.

    Arguments:
        request: the request sent by the user
    '''
    # if this is a POST request we need to process the form data
    if request.method == 'POST':
        # create a form instance and populate it with data from the request:
        form = SignUpForm(request.POST)
        # TODO: Issue #27 Add proper verification
        if form.is_valid():
            user = User.objects.create_user(form.data['user_name'], None,
                                            form.data['password'])
            Account.objects.create(user=user)
            auth.login(request, user)
            return HttpResponseRedirect('/')

    # if a GET (or any other method) we'll create a blank form
    # TODO: I took this from the example, but I'm not quite sure if we want it
    else:
        form = SignUpForm()

    return render(request, 'accounts/signup.html', {'form': form})
Exemplo n.º 10
0
def signup(request):
    form = SignUpForm(request.POST or None)
    if form.is_valid():
        user = form.save()
        user_email = form.cleaned_data['email']
        user.save()

        # send confirmation email
        token = account_activation_token.make_token(user)
        user_id = urlsafe_base64_encode(force_bytes(user.id))
        url = BASE_URL + reverse('accounts:confirm-email',
                                 kwargs={
                                     'user_id': user_id,
                                     'token': token
                                 })
        message = get_template(
            'accounts/account_activation_email.html').render(
                {'confirm_url': url})
        mail = EmailMessage('Fagrimacs Account Confirmation',
                            message,
                            to=[user_email],
                            from_email=settings.EMAIL_HOST_USER)
        mail.content_subtype = 'html'
        mail.send()

        return render(
            request, 'accounts/registration_pending.html', {
                'message': ('A confirmation email has been sent to your email'
                            '. Please confirm to finish registration.')
            })
    return render(request, 'accounts/signup.html', {
        'form': form,
    })
Exemplo n.º 11
0
def register_view(request):
    user = request.user
    if user.is_authenticated:
        return HttpResponseRedirect('/')
    form_title, form_button = 'Δημιουργια Λογαριασμου', 'Δημιουργια'
    text = '''Δημιουργώντας λογαριασμό στο κατάστημα μας, θα μπορείτε να ολοκληρλωσετε πιο εύκολα την διαδικασία παραγγελίας,
              να προσθέσετε προϊόντα στο λιστα Επιθυμιών και πολλά άλλα.'''
    form = SignUpForm(request.POST or None)
    if form.is_valid():
        user_ = form.save()
        username = form.cleaned_data.get('username')
        password = form.cleaned_data.get('password1')
        user = authenticate(username=username, password=password)
        if user:
            login(request, user)
            send_mail('Ευχαριστουμε που εγγραφήκατε στο optika-kotsalis.',
                      f'To username σας είναι {username}',
                      SITE_EMAIL, [
                          username,
                      ],
                      fail_silently=True)
            return redirect('user_profile')
    else:
        messages.warning(request, form.errors)
    context = locals()
    return render(request, 'frontend/user_views/register.html', context)
Exemplo n.º 12
0
    def test_invalid_data(self):
        invalid_data = [
            # Password too short
            {
                'username': '******',
                'email': '*****@*****.**',
                'password1': 'ksdhggh',
                'password2': 'ksdhggh'
            },
            # Password too easy
            {
                'username': '******',
                'email': '*****@*****.**',
                'password1': '1234abcd',
                'password2': '1234abcd'
            },
            # Email not valid
            {
                'username': '******',
                'email': 'johanne',
                'password1': 'ksdhgghf',
                'password2': 'ksdhgghf'
            },
        ]

        for data in invalid_data:
            form = SignUpForm(data)
            self.failIf(form.is_valid())
    def post(self, request, *args, **kwrags):
        signup_form = SignUpForm(request.POST)
        if signup_form.is_valid():
            user = signup_form.save()
            user.refresh_from_db()
            user.user_profile.phone_number = signup_form.cleaned_data.get(
                'phone_number')
            user.user_profile.user_type = request.POST.get('user_type')
            user.save()
            user.user_profile.save()

            current_site = get_current_site(request)
            subject = 'Activate Your Account'
            message = render_to_string(
                'accounts/acc_active_email.html', {
                    'user': user,
                    'domain': current_site.domain,
                    'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                    'token': account_activation_token.make_token(user),
                })
            user.email_user(subject, message)
            messages.success(
                request,
                ('Registration Completed.Please Confirm Your Email Address'))
            return redirect('home_login')
        else:
            context = {'signup_form': signup_form, 'title': 'Register'}
            return render(request, 'accounts/register.html', context)
Exemplo n.º 14
0
def signup_user(request):
    if request.method == 'GET':
        context = {
            'form': SignUpForm(),
        }

        return render(request, 'accounts/signup', context)
    else:
        form = SignUpForm(request.POST)

        if form.is_valid():
            user = form.save()
            profile = UserProfile(
                user=user,

            )
            profile.save()

            login(request, user)
            return redirect('index')

        context = {
            'form': form,
        }

        return render(request, 'accounts/signup.html', context)
Exemplo n.º 15
0
 def test_validate_email_duplication(self):
     f = SignUpForm({"email":"*****@*****.**"})
     self.assertFalse(f.is_valid())
     self.assertIn(
         "User with such username or email already exists",
         f.errors["__all__"]
     )
Exemplo n.º 16
0
 def post(self, request):
     form = SignUpForm(request.POST)
     if form.is_valid():
         user = form.save()
         current_site = get_current_site(request)
         subject = 'Activate Your Privalytics Account'
         message = render_to_string(
             'emails/account_activation.txt', {
                 'user':
                 user,
                 'domain':
                 current_site.domain,
                 'uid':
                 urlsafe_base64_encode(force_bytes(
                     user.pk)).decode('utf-8'),
                 'token':
                 account_activation_token.make_token(user),
             })
         user.email_user(subject,
                         message,
                         from_email='Privalytics <*****@*****.**>')
         user.profile.account_selected = request.session.get('account_type')
         user.save()
         user.profile.save()
         auth_login(request,
                    user,
                    backend='django.contrib.auth.backends.ModelBackend')
         return redirect('account')
     return render(request, self.template_name, {'form': form})
Exemplo n.º 17
0
def user_new(request):
    p = SignUpForm(request.POST or None)
    if p.is_valid():
        p.save()
        messages.success(request, 'Registration Successfull')
        return HttpResponseRedirect('http://localhost:8000')
    context = {'form': p}
    return render(request, 'accounts/signup.html', context)
Exemplo n.º 18
0
 def post(self, request):
     form = SignUpForm(request.POST)
     if not form.is_valid():
         return render(request, 'accounts/register.html', {'form':form})
     username = form.cleaned_data['username']
     password = form.cleaned_data['password']
     user = User.objects.create_user(username = username, password = password)
     return render(request, 'accounts/register-ok.html', {'user':user})
Exemplo n.º 19
0
def sign_up(request):
    form = SignUpForm(request.POST or None)
    if form.is_valid():
        form.save()
        return HttpResponseRedirect("/")
    else:
        print("form invalid")
        messages.error(request, "Error")
    return render(request, 'sign_up.html', {'form': form})
Exemplo n.º 20
0
 def test_email_max_length(self):
     # Build an email string longer than 150 characters
     long_email = ["a"] * 200 + ["@testemail.com"]
     form = SignUpForm(data={
         "username": "******",
         "password": "******",
         "email": long_email
     })
     self.assertFalse(form.is_valid())
Exemplo n.º 21
0
 def test_valid_data(self):
     form = SignUpForm(
         data={
             'username': '******',
             'email': '*****@*****.**',
             'password': '******',
             'confirm_password': '******'
         })
     self.assertTrue(form.is_valid())
Exemplo n.º 22
0
 def test_username_already_used_sign_up(self):
     form = SignUpForm(data={
         'username':'******',
         'first_name':'firstname',
         'last_name':'secondname',
         'email':'*****@*****.**',
         'password1':'Asuperduperstrongpassword',
         'password2':'Asuperduperstrongpassword',
     })
     self.assertFalse(form.is_valid())
Exemplo n.º 23
0
 def test_email_not_permitted_sign_up(self):
     form = SignUpForm(data={
         'username':'******',
         'first_name':'firstname',
         'last_name':'secondname',
         'email':'*****@*****.**',
         'password1':'Asuperduperstrongpassword',
         'password2':'Asuperduperstrongpassword',
     })
     self.assertFalse(form.is_valid())
Exemplo n.º 24
0
 def test_cannot_have_password_less_than_8_characters(self):
     form_data = {
         'username': '******',
         'email': '*****@*****.**',
         'password1': 'awefw',
         'password2': 'awefw',
         'tos_accepted': True,
     }
     form = SignUpForm(data=form_data)
     self.assertFalse(form.is_valid())
Exemplo n.º 25
0
def sign_up(request):
    context = {}
    form = SignUpForm(request.POST or None)
    if request.method == "POST":
        if form.is_valid():
            user = form.save()
            login(request, user)
            return redirect("profile")
    context["form"] = form
    return render(request, "registration/sign_up.html", context)
Exemplo n.º 26
0
 def test_username_max_length(self):
     # Build a username string longer than 150 characters
     long_username = ["a"] * 151
     form = SignUpForm(
         data={
             "username": long_username,
             "password": "******",
             "email": "*****@*****.**",
         })
     self.assertFalse(form.is_valid())
Exemplo n.º 27
0
    def test_signup_form_valid_data(self):
        form = SignUpForm(
            data={
                'email': '*****@*****.**',
                'password1': 'nklsjiaskljnishujippaodjije2211m2k2m11',
                'password2': 'nklsjiaskljnishujippaodjije2211m2k2m11',
                'username': '******'
            })

        self.assertTrue(form.is_valid())
Exemplo n.º 28
0
    def test_unique_email(self):
        data = {
            'username': '******',
            'email': '*****@*****.**',
            'password1': 'ksdhgghf',
            'password2': 'ksdhgghf'
        }

        form = SignUpForm(data)
        self.failIf(form.is_valid())
Exemplo n.º 29
0
def signup(request):
    # if you are logged-in you shouldnt be able to visit the signup URL
    if request.user.is_authenticated:
        return redirect('dashboard')
    else:
        if request.method == 'POST':
            form = SignUpForm(request.POST)
            if form.is_valid():
                # form is a valid response then save the data
                user = User.objects.create_user(
                    email=(form.cleaned_data['email']).casefold(),
                    password=form.cleaned_data['password1'],
                    first_name=form.cleaned_data['first_name'],
                    last_name=form.cleaned_data['last_name'],
                    phone_no=form.cleaned_data['phone_no'],
                    bvn=form.cleaned_data['bvn'],
                )

                # send_mail(subject, message, from_email, to_list, fail_silently=True)
                subject = 'QuickCash Email Verification'

                current_site = "https://quick-loan.herokuapp.com/accounts/email-verification"
                # current_site = get_current_site(request)
                uid = (user.pk)
                token = account_activation_token.make_token(user)

                token_verification = User.objects.get(pk=user.pk)
                token_verification.activation_token = token
                token_verification.save()

                activation_link = "{0}/{1}/{2}".format(current_site, uid,
                                                       token)
                message = "Hello {0},\n \n {1}".format(
                    (user.first_name).capitalize(), activation_link)

                # message = 'Welcome to Quickcash Loan. In order to gain full access to our website please activate your account with the link below.'
                from_email = settings.EMAIL_HOST_USER
                to_list = [(form.cleaned_data['email']).casefold(),
                           settings.EMAIL_HOST_USER]
                send_mail(subject, message, from_email, to_list)

                # auth.login(request, user)
                # return redirect('dashboard')
                messages.success(
                    request,
                    'Account creation was successful. Please, activate your account through the confirmation email sent to your email'
                )
                context = {'resend': 'resend'}
                return render(request, 'accounts/login.html', context)
            else:
                # Form has error relay the error to the user
                context = {'form': form}
                return render(request, 'accounts/signup.html', context)
        else:
            return render(request, 'accounts/signup.html')
Exemplo n.º 30
0
def signup(request):
    if request.user.is_authenticated:
        return home(request)

    form = SignUpForm(request.POST or None)

    if request.POST and form.is_valid():
        form.username = request.POST.get('username')
        form.password = request.POST.get('password')
        form.first = request.POST.get('first_name')
        form.last = request.POST.get('last_name')
        form.email = request.POST.get('email')
        user = form.save()

        username = form.username
        raw_password = form.password

        # user = authenticate(username=username, password=raw_password)
        auth_login(request,
                   user,
                   backend='django.contrib.auth.backends.ModelBackend')

        dt = AccountDetails.objects.create(user=user)
        unique_slugify(dt, username)
        dt.save()

        return redirect('accounts.account')
    return render(request, 'accounts/signup.html', {'form': form})
Exemplo n.º 31
0
 def test_valid_data(self):
     data = {
         'username': '******',
         'email': '*****@*****.**',
         'password1': 'ksdhgghf',
         'password2': 'ksdhgghf'
     }
     form = SignUpForm(data)
     self.failUnless(form.is_valid())
     form.save()
     self.assertTrue(User.objects.filter(email='*****@*****.**').exists())
Exemplo n.º 32
0
def sign_up(request):
    if request.method == "POST":
        form = SignUpForm(request.POST)
        if form.is_valid():
            user_profile = UserProfile.objects.sign_up(form.cleaned_data["username"], form.cleaned_data["password"])
            login(request, user_profile.user)
            return HttpResponseRedirect(settings.LOGIN_REDIRECT_URL)
    else:
        form = SignUpForm()

    c = dict(form=form)
    return render_to_response("accounts/sign_up.html", c, context_instance=RequestContext(request))
Exemplo n.º 33
0
def signup(request):
    if request.method == 'POST':
        # ipdb.set_trace()
        form = SignUpForm(request.POST)

        if form.is_valid():
            username = form.cleaned_data['username']
            email = form.cleaned_data['email']
            password = form.cleaned_data['password']

            new_user = User.objects.create_user(username, email, password)
            new_user.first_name = form.cleaned_data['first_name']
            new_user.last_name = form.cleaned_data['last_name']
            new_user.save()
            new_user = authenticate(username=username, password=password)
            login(request, new_user)
            return redirect('books:user_books', username=username)
    else:
        form = SignUpForm()
    return render(request, 'accounts/signup_in.html', {'signup_in_form': form})
Exemplo n.º 34
0
def cm_useradd(request, *args, **kargs):
    """create a new user"""

    from hashlib import md5
    form = SignUpForm(request.POST)
    if form.is_valid():
        user = \
            User.objects.create_user(username=md5(str(form.cleaned_data['email'
                ])).hexdigest()[:30],
                password=form.cleaned_data['password'],
                email=form.cleaned_data['email'])
        user.last_name = form.cleaned_data['last']
        user.first_name = form.cleaned_data['first']
        user.save()
        profile = UserProfile(user=user,
                              institute=form.cleaned_data['institute'])
        profile.save()
        request.user.message_set.create(message='Your account has been created. Please log in.'
                )
        return HttpResponseRedirect(request.get_full_path())
    else:
        return dict(form_signup=form)
Exemplo n.º 35
0
def signup(request):
    invited_by = None
    if request.method == 'GET':
        invited_by_id = request.GET.get('invited_by', None)
        form = SignUpForm()
    elif request.method == 'POST':
        form = SignUpForm(request.POST)
        invited_by_id = request.POST.get('invited_by', None)
        if form.is_valid():
            if invited_by_id:
                try:
                    invited_by = Account.objects.get(pk=invited_by_id)
                except Account.DoesNotExist:
                    pass
            new_account = Account.objects.create_user(
                form.cleaned_data['email'],
                password=form.cleaned_data['password'],
                first_name=form.cleaned_data['first_name'],
                last_name=form.cleaned_data['last_name'],
                invited_by=invited_by
            )
            new_user = authenticate(email=request.POST['email'],
                                    password=request.POST['password'])
            request.session['account_id'] = new_account.id
            login(request, new_user)
            return HttpResponseRedirect('/dashboard/')
    if invited_by_id:
        try:
            invited_by_obj = Account.objects.get(pk=invited_by_id)
        except Account.DoesNotExist:
            pass
        else:
            invited_by = {
                'user_id': invited_by_obj.id,
                'full_name': invited_by_obj.first_name + ' ' + invited_by_obj.last_name
            }
    return render(request, 'signup.html', {'form': form, 'invited_by': invited_by})
Exemplo n.º 36
0
def signup(request):
	user_form = SignUpForm(data=request.POST)
	if request.method == "POST":
		if user_form.is_valid():
			username = user_form.clean_username()
			password = user_form.clean_password2()
			user_form.save()
			user = authenticate(username=username, password=password)
			login(request, user)
			return redirect('/about-create')
		else:
			return index(request, user_form=user_form)
	return redirect('/about-create')
Exemplo n.º 37
0
def signup(request):
    form = SignUpForm(request.POST or None)
    if form.is_valid():

        first_name = form.cleaned_data['first_name']
        last_name = form.cleaned_data['last_name']
        username = form.cleaned_data['username']
        email = form.cleaned_data['email']
        password = form.cleaned_data['password']

        user_obj = User.objects.create(
            first_name=first_name.title(),
            last_name=last_name.title(),
            username=username,
            email=email,
            date_joined=datetime.datetime.now(),
            is_active=False,
            password=make_password(password),
            is_superuser=False,
            is_staff=False,
        )

        profile = Profile(user=user_obj,
                          dob=form.cleaned_data['dob'],
                          sex=form.cleaned_data['sex'],
                          last_edited_on=datetime.datetime.now(),
                          )
        profile.save()

        PrivacySettings.objects.create(user=user_obj,
                                       friends_visibility='F',
                                       cover_photos_visibility='F',
                                       profile_photos_visibility='F',
                                       daily_photos_visibility='F',
                                       stories_visibility='F',
                                       calendar_visibility='F',
                                       )
        ProfilePhoto.objects.create(user=user_obj,
                                    profile_photo='profile_photo/default_avatar.jpg',
                                    cropping='',
                                    is_set=True,
                                    key='123456789',
                                    uploaded_on=datetime.datetime.now())

        # Sending the confirmation email here.
        try:
            ACTIVATION_KEY = activation_key_generator(20,
                                                      "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdegfhijklmnopqrstuvwxyz1234567890")
            subject = 'Oposod.com: User %s creation information.' % (username)
            html_content = '''<div style="border: 1px solid #ddd; background: #000; padding: 30px; font-size: 50px; font-family: 'Ubuntu'">
                            <p>Hello %s . You have successfully registered your account on oposod.com
                            . To proceed further, you need to verfiy your email id.</p>
                            <p>Please follow this link %s/account/activation/%s</p>
                            </div>''' % (username, SITE, ACTIVATION_KEY)
            recipient_list = [email]

            send_html_mail(subject, html_content, recipient_list)

            rp = RegistrationProfile(user=user_obj, activation_key=ACTIVATION_KEY)
            rp.save()

        except Exception, e:
            return render(request, '404_error.html', {
                'msg': 'There is some error in sending the email. The error is: %s' % e
            })

        messages.info(request,
                      'You have successfully registered, please activate your account from your email before signing in.')
        return HttpResponseRedirect(reverse('signin'))