diff --git a/account/templates/templated_email/junior_approval_mail.email b/account/templates/templated_email/junior_approval_mail.email
index fd3c19f..e9884d6 100644
--- a/account/templates/templated_email/junior_approval_mail.email
+++ b/account/templates/templated_email/junior_approval_mail.email
@@ -8,7 +8,7 @@
|
- Hi {{full_name}},
+ Hello,
|
diff --git a/junior/admin.py b/junior/admin.py
index 99f1cd0..acd8734 100644
--- a/junior/admin.py
+++ b/junior/admin.py
@@ -2,7 +2,7 @@
"""Third party Django app"""
from django.contrib import admin
"""Import Django app"""
-from .models import Junior, JuniorPoints
+from .models import Junior, JuniorPoints, JuniorGuardianRelationship
# Register your models here.
@admin.register(Junior)
class JuniorAdmin(admin.ModelAdmin):
@@ -21,3 +21,9 @@ class JuniorPointsAdmin(admin.ModelAdmin):
def __str__(self):
"""Return email id"""
return self.junior.auth.email
+
+@admin.register(JuniorGuardianRelationship)
+class JuniorGuardianRelationshipAdmin(admin.ModelAdmin):
+ """Junior Admin"""
+ list_display = ['guardian', 'junior', 'relationship']
+
diff --git a/junior/models.py b/junior/models.py
index 2bba176..529e1e0 100644
--- a/junior/models.py
+++ b/junior/models.py
@@ -49,9 +49,6 @@ class Junior(models.Model):
dob = models.DateField(max_length=15, null=True, blank=True, default=None)
# Image of the junior"""
image = models.URLField(null=True, blank=True, default=None)
- # relationship"""
- relationship = models.CharField(max_length=31, choices=RELATIONSHIP, null=True, blank=True,
- default='1')
# Sign up method"""
signup_method = models.CharField(max_length=31, choices=SIGNUP_METHODS, default='1')
# Codes"""
diff --git a/junior/serializers.py b/junior/serializers.py
index d2d6b6d..3bc2540 100644
--- a/junior/serializers.py
+++ b/junior/serializers.py
@@ -9,7 +9,7 @@ from rest_framework_simplejwt.tokens import RefreshToken
"""Import django app"""
from account.utils import send_otp_email, generate_code
-from junior.models import Junior, JuniorPoints
+from junior.models import Junior, JuniorPoints, JuniorGuardianRelationship
from guardian.tasks import generate_otp
from base.messages import ERROR_CODE, SUCCESS_CODE
from base.constants import PENDING, IN_PROGRESS, REJECTED, REQUESTED, COMPLETED, NUMBER, JUN, ZOD
@@ -249,18 +249,11 @@ class JuniorProfileSerializer(serializers.ModelSerializer):
class AddJuniorSerializer(serializers.ModelSerializer):
"""Add junior serializer"""
- auth_token = serializers.SerializerMethodField('get_auth_token')
-
- def get_auth_token(self, obj):
- """auth token"""
- refresh = RefreshToken.for_user(obj)
- access_token = str(refresh.access_token)
- return access_token
class Meta(object):
"""Meta info"""
model = Junior
- fields = ['id', 'gender','dob', 'relationship', 'auth_token', 'is_invited']
+ fields = ['id', 'gender','dob', 'is_invited']
def create(self, validated_data):
@@ -268,6 +261,7 @@ class AddJuniorSerializer(serializers.ModelSerializer):
with transaction.atomic():
email = self.context['email']
guardian = self.context['user']
+ relationship = self.context['relationship']
full_name = self.context['first_name'] + ' ' + self.context['last_name']
guardian_data = Guardian.objects.filter(user__username=guardian).last()
user_data = User.objects.create(username=email, email=email,
@@ -278,11 +272,13 @@ class AddJuniorSerializer(serializers.ModelSerializer):
user_data.save()
junior_data = Junior.objects.create(auth=user_data, gender=validated_data.get('gender'),
dob=validated_data.get('dob'), is_invited=True,
- relationship=validated_data.get('relationship'),
+ guardian_code=[guardian_data.guardian_code],
junior_code=generate_code(JUN, user_data.id),
referral_code=generate_code(ZOD, user_data.id),
referral_code_used=guardian_data.referral_code,
is_password_set=False, is_verified=True)
+ JuniorGuardianRelationship.objects.create(guardian=guardian_data, junior=junior_data,
+ relationship=relationship)
"""Generate otp"""
otp_value = generate_otp()
expiry_time = timezone.now() + timezone.timedelta(days=1)
@@ -375,18 +371,11 @@ class JuniorPointsSerializer(serializers.ModelSerializer):
class AddGuardianSerializer(serializers.ModelSerializer):
"""Add guardian serializer"""
- auth_token = serializers.SerializerMethodField('get_auth_token')
-
- def get_auth_token(self, obj):
- """auth token"""
- refresh = RefreshToken.for_user(obj)
- access_token = str(refresh.access_token)
- return access_token
class Meta(object):
"""Meta info"""
model = Guardian
- fields = ['id', 'auth_token']
+ fields = ['id']
def create(self, validated_data):
@@ -394,11 +383,12 @@ class AddGuardianSerializer(serializers.ModelSerializer):
with transaction.atomic():
email = self.context['email']
junior = self.context['user']
+ relationship = self.context['relationship']
full_name = self.context['first_name'] + ' ' + self.context['last_name']
junior_data = Junior.objects.filter(auth__username=junior).last()
instance = User.objects.filter(username=email).last()
if instance:
- guardian_data = Guardian.objects.filter(user=user).update(is_invited=True,
+ guardian_data = Guardian.objects.filter(user=instance).update(is_invited=True,
referral_code=generate_code(ZOD,
instance.id),
referral_code_used=junior_data.referral_code,
@@ -412,22 +402,24 @@ class AddGuardianSerializer(serializers.ModelSerializer):
password = User.objects.make_random_password()
user.set_password(password)
user.save()
- Guardian.objects.create(user=user, is_invited=True,
- referral_code=generate_code(ZOD, user.id),
- referral_code_used=junior_data.referral_code,
- is_password_set=False, is_verified=True)
+ guardian_data = Guardian.objects.create(user=user, is_invited=True,
+ referral_code=generate_code(ZOD, user.id),
+ referral_code_used=junior_data.referral_code,
+ is_password_set=False, is_verified=True)
"""Generate otp"""
otp_value = generate_otp()
expiry_time = timezone.now() + timezone.timedelta(days=1)
UserEmailOtp.objects.create(email=email, otp=otp_value,
user_type=str(NUMBER['two']), expired_at=expiry_time,
is_verified=True)
+ JuniorGuardianRelationship.objects.create(guardian=guardian_data, junior=junior_data,
+ relationship=relationship)
"""Notification email"""
junior_notification_email(email, full_name, email, password)
junior_approval_mail(email, full_name)
send_notification(INVITED_GUARDIAN, None, junior_data.auth.id, {})
send_notification(APPROVED_JUNIOR, None, email, {})
- return instance
+ return guardian_data
class StartTaskSerializer(serializers.ModelSerializer):
"""User task Serializer"""
diff --git a/junior/views.py b/junior/views.py
index 00fd188..1021bc8 100644
--- a/junior/views.py
+++ b/junior/views.py
@@ -130,7 +130,7 @@ class AddJuniorAPIView(viewsets.ModelViewSet):
""" junior list"""
try:
info = {'user': request.user, 'email': request.data['email'], 'first_name': request.data['first_name'],
- 'last_name': request.data['last_name']}
+ 'last_name': request.data['last_name'], 'relationship': str(request.data['relationship'])}
if User.objects.filter(username=request.data['email']):
return custom_error_response(ERROR_CODE['2059'], response_status=status.HTTP_400_BAD_REQUEST)
@@ -365,7 +365,7 @@ class InviteGuardianAPIView(viewsets.ModelViewSet):
""" junior list"""
try:
info = {'user': request.user, 'email': request.data['email'], 'first_name': request.data['first_name'],
- 'last_name': request.data['last_name']}
+ 'last_name': request.data['last_name'], 'relationship': str(request.data['relationship'])}
# use AddJuniorSerializer serializer
serializer = AddGuardianSerializer(data=request.data, context=info)
if serializer.is_valid():