mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-15 10:05:21 +00:00
61 lines
2.0 KiB
Python
61 lines
2.0 KiB
Python
"""Account utils"""
|
|
"""Import django"""
|
|
from django.conf import settings
|
|
"""Third party Django app"""
|
|
from templated_email import send_templated_mail
|
|
from .models import JuniorPoints
|
|
from django.db.models import F
|
|
# junior notification
|
|
# email for sending email
|
|
# when guardian create junior profile
|
|
# guardian get email when junior send
|
|
# request for approving the profile and
|
|
# being part of the zod bank and access the platform
|
|
# define junior notification email
|
|
# junior approval email
|
|
def junior_notification_email(recipient_email, full_name, email, password):
|
|
"""Notification email"""
|
|
from_email = settings.EMAIL_FROM_ADDRESS
|
|
# recipient email"""
|
|
recipient_list = [recipient_email]
|
|
# use send template mail for sending email"""
|
|
send_templated_mail(
|
|
template_name='junior_notification_email.email',
|
|
from_email=from_email,
|
|
recipient_list=recipient_list,
|
|
context={
|
|
'full_name': full_name,
|
|
'url':'link',
|
|
'email': email,
|
|
'password': password
|
|
}
|
|
)
|
|
return full_name
|
|
|
|
def junior_approval_mail(guardian, full_name):
|
|
"""junior approval mail"""
|
|
from_email = settings.EMAIL_FROM_ADDRESS
|
|
recipient_list = [guardian]
|
|
# use send template mail for sending email"""
|
|
send_templated_mail(
|
|
template_name='junior_approval_mail.email',
|
|
from_email=from_email,
|
|
recipient_list=recipient_list,
|
|
context={
|
|
'full_name': full_name
|
|
}
|
|
)
|
|
return full_name
|
|
|
|
def update_positions_based_on_points():
|
|
"""Update position of the junior"""
|
|
# First, retrieve all the JuniorPoints instances ordered by total_points in descending order.
|
|
juniors_points = JuniorPoints.objects.order_by('-total_points', 'updated_at')
|
|
|
|
# Now, iterate through the queryset and update the position field based on the order.
|
|
position = 1
|
|
for junior_point in juniors_points:
|
|
junior_point.position = position
|
|
junior_point.save()
|
|
position += 1
|