You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
TeamFlash/sahara/main/views.py

91 lines
3.0 KiB

from django.shortcuts import render,redirect,HttpResponse
from django.core.mail import send_mail
from django.conf import settings
from django.template.loader import render_to_string
from django.utils.html import strip_tags
from django.conf import settings
from django.urls import reverse
from django.contrib.sites.shortcuts import get_current_site
from . forms import BaseUserForm
from django.contrib import messages
from django.contrib.auth.tokens import default_token_generator
# Create your views here.
from .models import BaseUser
def homeView(request):
return HttpResponse("home")
def createUserView(request):
if request.method == 'POST':
form = BaseUserForm(request.POST, request.FILES)
print(form)
if form.is_valid():
form.save()
form.is_a
#return redirect('home')
return HttpResponse("<h1>User Created</h1>")
else:
form = BaseUserForm()
return render(request, 'main/create_user.html', {
'form': form
})
def send_mail_page():
address = "sajeshmaan@gmail.com"
subject = "Congrts Team Flash"
message = "Congrts Team Flash hackx committe has announced your team as a winner"
try:
send_mail(subject, message, settings.EMAIL_HOST_USER, [address,'rajakiaryal0@gmail.com'])
result= 'Email sent successfully'
except Exception as e:
result = f'Error sending email: {e}'
def send_welcome_email(user, request):
# Generate activation link
user = BaseUser.objects.get(email="user@example.com") # Replace with your user object
token = default_token_generator.make_token(user)
token = 'generated_token_here' # This token will be generated based on your activation logic
activation_link = f"{get_current_site(request).domain}{reverse('account:activate', args=[token])}"
# Prepare email subject and message
subject = "Welcome to Sahara - Please Activate Your Account"
# Render the HTML email
html_message = render_to_string('welcome_email.html', {
'user': user,
'activation_link': activation_link,
})
# Render the plain-text version of the email
plain_message = strip_tags(html_message)
# Send the email
send_mail(
subject,
plain_message,
settings.DEFAULT_FROM_EMAIL,
[user.email],
html_message=html_message,
)
def activate_account(request, token):
try:
# Decode token and retrieve user
user = User.objects.get(email__iexact=user_email_from_token)
if user:
# Activate user account
user.is_active = True
user.save()
messages.success(request, "Account activated successfully!")
return redirect('login') # Redirect to the login page
else:
messages.error(request, "Invalid activation link.")
except Exception as e:
messages.error(request, str(e))
return redirect('home') # Redirect to homepage in case of error