mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-17 02:45:08 +00:00
update profile
This commit is contained in:
@ -23,12 +23,28 @@ class GoogleLoginSerializer(serializers.Serializer):
|
|||||||
"""meta class"""
|
"""meta class"""
|
||||||
fields = ('access_token',)
|
fields = ('access_token',)
|
||||||
|
|
||||||
|
|
||||||
|
class UpdateJuniorProfileImageSerializer(serializers.ModelSerializer):
|
||||||
|
"""Reset Password after verification"""
|
||||||
|
class Meta(object):
|
||||||
|
"""Meta info"""
|
||||||
|
model = Junior
|
||||||
|
fields = ['image']
|
||||||
|
|
||||||
|
def update(self, instance, validated_data):
|
||||||
|
"""update image """
|
||||||
|
junior_image = validated_data.get('image', instance.image)
|
||||||
|
instance.image = junior_image
|
||||||
|
instance.save()
|
||||||
|
return instance
|
||||||
|
|
||||||
|
|
||||||
class UpdateGuardianImageSerializer(serializers.ModelSerializer):
|
class UpdateGuardianImageSerializer(serializers.ModelSerializer):
|
||||||
"""Reset Password after verification"""
|
"""Reset Password after verification"""
|
||||||
class Meta(object):
|
class Meta(object):
|
||||||
"""Meta info"""
|
"""Meta info"""
|
||||||
model = Guardian
|
model = Guardian
|
||||||
fields = '__all__'
|
fields = ['image']
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
def update(self, instance, validated_data):
|
||||||
"""update image """
|
"""update image """
|
||||||
@ -36,21 +52,7 @@ class UpdateGuardianImageSerializer(serializers.ModelSerializer):
|
|||||||
instance.save()
|
instance.save()
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
class UpdateJuniorProfileImageSerializer(serializers.ModelSerializer):
|
|
||||||
"""Reset Password after verification"""
|
|
||||||
class Meta(object):
|
|
||||||
"""Meta info"""
|
|
||||||
model = Junior
|
|
||||||
fields = '__all__'
|
|
||||||
|
|
||||||
def update(self, instance, validated_data):
|
|
||||||
"""update image """
|
|
||||||
image = validated_data.get('image', instance.image)
|
|
||||||
filename = f"images/{image.name}"
|
|
||||||
image_url = upload_image_to_alibaba(image, filename)
|
|
||||||
instance.image = image_url
|
|
||||||
instance.save()
|
|
||||||
return instance
|
|
||||||
class ResetPasswordSerializer(serializers.Serializer):
|
class ResetPasswordSerializer(serializers.Serializer):
|
||||||
"""Reset Password after verification"""
|
"""Reset Password after verification"""
|
||||||
verification_code = serializers.CharField(max_length=10)
|
verification_code = serializers.CharField(max_length=10)
|
||||||
|
@ -4,7 +4,9 @@ from rest_framework import viewsets, status, views
|
|||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
import random
|
import random
|
||||||
import logging
|
import logging
|
||||||
|
from django.utils import timezone
|
||||||
import jwt
|
import jwt
|
||||||
|
from guardian.utils import upload_image_to_alibaba
|
||||||
from django.contrib.auth import authenticate, login
|
from django.contrib.auth import authenticate, login
|
||||||
from guardian.models import Guardian
|
from guardian.models import Guardian
|
||||||
from junior.models import Junior
|
from junior.models import Junior
|
||||||
@ -135,12 +137,22 @@ class SigninWithApple(views.APIView):
|
|||||||
class UpdateProfileImage(views.APIView):
|
class UpdateProfileImage(views.APIView):
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
def put(self, request, format=None):
|
def put(self, request, format=None):
|
||||||
if request.data['user_type'] == '1':
|
if str(request.data['user_type']) == '1':
|
||||||
junior_query = Junior.objects.filter(auth=request.user).last()
|
junior_query = Junior.objects.filter(auth=request.user).last()
|
||||||
serializer = UpdateJuniorProfileImageSerializer(junior_query, data=request.data, partial=True)
|
image = request.data['image']
|
||||||
else:
|
filename = f"images/{image.name}"
|
||||||
|
image_url = upload_image_to_alibaba(image, filename)
|
||||||
|
image_data = image_url
|
||||||
|
serializer = UpdateJuniorProfileImageSerializer(junior_query,
|
||||||
|
data={'image':image_data}, partial=True)
|
||||||
|
if str(request.data['user_type']) == '2':
|
||||||
guardian_query = Guardian.objects.filter(user=request.user).last()
|
guardian_query = Guardian.objects.filter(user=request.user).last()
|
||||||
serializer = UpdateGuardianImageSerializer(guardian_query, data=request.data, partial=True)
|
image = request.data['image']
|
||||||
|
filename = f"images/{image.name}"
|
||||||
|
image_url = upload_image_to_alibaba(image, filename)
|
||||||
|
image_data = image_url
|
||||||
|
serializer = UpdateGuardianImageSerializer(guardian_query,
|
||||||
|
data={'image':image_data}, partial=True)
|
||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
serializer.save()
|
serializer.save()
|
||||||
return custom_response(SUCCESS_CODE['3017'], serializer.data, response_status=status.HTTP_200_OK)
|
return custom_response(SUCCESS_CODE['3017'], serializer.data, response_status=status.HTTP_200_OK)
|
||||||
@ -185,7 +197,7 @@ class ForgotPasswordAPIView(views.APIView):
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
expiry = datetime.today() + timedelta(days=1)
|
expiry = timezone.now() + timezone.timedelta(days=1)
|
||||||
user_data, created = UserEmailOtp.objects.get_or_create(email=email)
|
user_data, created = UserEmailOtp.objects.get_or_create(email=email)
|
||||||
if created:
|
if created:
|
||||||
user_data.expired_at = expiry
|
user_data.expired_at = expiry
|
||||||
@ -336,7 +348,7 @@ class ReSendEmailOtp(viewsets.ModelViewSet):
|
|||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
otp = generate_otp()
|
otp = generate_otp()
|
||||||
if User.objects.filter(email=request.data['email']):
|
if User.objects.filter(email=request.data['email']):
|
||||||
expiry = datetime.today() + timedelta(days=1)
|
expiry = timezone.now() + timezone.timedelta(days=1)
|
||||||
email_data, created = UserEmailOtp.objects.get_or_create(email=request.data['email'])
|
email_data, created = UserEmailOtp.objects.get_or_create(email=request.data['email'])
|
||||||
if created:
|
if created:
|
||||||
email_data.expired_at = expiry
|
email_data.expired_at = expiry
|
||||||
|
@ -3,7 +3,8 @@
|
|||||||
from rest_framework.permissions import IsAuthenticated
|
from rest_framework.permissions import IsAuthenticated
|
||||||
from rest_framework import viewsets, status
|
from rest_framework import viewsets, status
|
||||||
from rest_framework.pagination import PageNumberPagination
|
from rest_framework.pagination import PageNumberPagination
|
||||||
from django.db.models import Max
|
from django.contrib.auth.models import User
|
||||||
|
from django.utils import timezone
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
"""Import Django app"""
|
"""Import Django app"""
|
||||||
from .serializers import (UserSerializer, CreateGuardianSerializer, TaskSerializer, TaskDetailsSerializer,
|
from .serializers import (UserSerializer, CreateGuardianSerializer, TaskSerializer, TaskDetailsSerializer,
|
||||||
@ -22,7 +23,6 @@ from django.db.models import Sum
|
|||||||
class SignupViewset(viewsets.ModelViewSet):
|
class SignupViewset(viewsets.ModelViewSet):
|
||||||
"""Signup view set"""
|
"""Signup view set"""
|
||||||
serializer_class = UserSerializer
|
serializer_class = UserSerializer
|
||||||
|
|
||||||
def create(self, request, *args, **kwargs):
|
def create(self, request, *args, **kwargs):
|
||||||
"""Create user profile"""
|
"""Create user profile"""
|
||||||
if request.data['user_type'] in ['1', '2']:
|
if request.data['user_type'] in ['1', '2']:
|
||||||
@ -31,7 +31,7 @@ class SignupViewset(viewsets.ModelViewSet):
|
|||||||
serializer.save()
|
serializer.save()
|
||||||
"""Generate otp"""
|
"""Generate otp"""
|
||||||
otp = generate_otp()
|
otp = generate_otp()
|
||||||
expiry = datetime.today() + timedelta(days=1)
|
expiry = timezone.now() + timezone.timedelta(days=1)
|
||||||
UserEmailOtp.objects.create(email=request.data['email'], otp=otp,
|
UserEmailOtp.objects.create(email=request.data['email'], otp=otp,
|
||||||
user_type=str(request.data['user_type']), expired_at=expiry)
|
user_type=str(request.data['user_type']), expired_at=expiry)
|
||||||
"""Send email to the register user"""
|
"""Send email to the register user"""
|
||||||
@ -110,24 +110,45 @@ class CreateTaskAPIView(viewsets.ModelViewSet):
|
|||||||
return custom_response(SUCCESS_CODE['3018'], serializer.data, response_status=status.HTTP_200_OK)
|
return custom_response(SUCCESS_CODE['3018'], serializer.data, response_status=status.HTTP_200_OK)
|
||||||
return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST)
|
return custom_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST)
|
||||||
|
|
||||||
|
|
||||||
class SearchTaskListAPIView(viewsets.ModelViewSet):
|
class SearchTaskListAPIView(viewsets.ModelViewSet):
|
||||||
"""Update guardian profile"""
|
"""Update guardian profile"""
|
||||||
serializer_class = TaskDetailsSerializer
|
serializer_class = TaskDetailsSerializer
|
||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
pagination_class = PageNumberPagination
|
pagination_class = PageNumberPagination
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
"""Get the queryset for the view"""
|
||||||
|
title = self.request.GET.get('title')
|
||||||
|
junior_queryset = JuniorTask.objects.filter(guardian__user=self.request.user, task_name__icontains=title)\
|
||||||
|
.order_by('due_date', 'created_at')
|
||||||
|
return junior_queryset
|
||||||
|
|
||||||
def list(self, request, *args, **kwargs):
|
def list(self, request, *args, **kwargs):
|
||||||
"""Create guardian profile"""
|
"""Create guardian profile"""
|
||||||
title = self.request.GET.get('title')
|
queryset = self.get_queryset()
|
||||||
if title:
|
|
||||||
queryset = JuniorTask.objects.filter(guardian__user=request.user, task_name__icontains=title)\
|
|
||||||
.order_by('due_date','created_at')
|
|
||||||
paginator = self.pagination_class()
|
paginator = self.pagination_class()
|
||||||
paginated_queryset = paginator.paginate_queryset(queryset, request)
|
paginated_queryset = paginator.paginate_queryset(queryset, request)
|
||||||
|
|
||||||
serializer = TaskDetailsSerializer(paginated_queryset, many=True)
|
serializer = TaskDetailsSerializer(paginated_queryset, many=True)
|
||||||
return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
# class SearchTaskListAPIView(viewsets.ModelViewSet):
|
||||||
|
# """Update guardian profile"""
|
||||||
|
# serializer_class = TaskDetailsSerializer
|
||||||
|
# permission_classes = [IsAuthenticated]
|
||||||
|
# pagination_class = PageNumberPagination
|
||||||
|
#
|
||||||
|
# def list(self, request, *args, **kwargs):
|
||||||
|
# """Create guardian profile"""
|
||||||
|
# title = self.request.GET.get('title')
|
||||||
|
# junior_queryset = JuniorTask.objects.filter(guardian__user=request.user, task_name__icontains=title)\
|
||||||
|
# .order_by('due_date','created_at')
|
||||||
|
# paginator = self.pagination_class()
|
||||||
|
# queryset = paginator.paginate_queryset(junior_queryset, request)
|
||||||
|
# serializer = TaskDetailsSerializer(queryset, many=True)
|
||||||
|
# return custom_response(None, serializer.data, response_status=status.HTTP_200_OK)
|
||||||
|
|
||||||
|
|
||||||
class TopJuniorListAPIView(viewsets.ModelViewSet):
|
class TopJuniorListAPIView(viewsets.ModelViewSet):
|
||||||
"""Top juniors list"""
|
"""Top juniors list"""
|
||||||
|
18
junior/migrations/0007_alter_junior_image.py
Normal file
18
junior/migrations/0007_alter_junior_image.py
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 4.2.2 on 2023-07-06 12:18
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('junior', '0006_alter_junior_country_name'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='junior',
|
||||||
|
name='image',
|
||||||
|
field=models.URLField(blank=True, default=None, null=True),
|
||||||
|
),
|
||||||
|
]
|
@ -18,7 +18,7 @@ class Junior(models.Model):
|
|||||||
"""Personal info"""
|
"""Personal info"""
|
||||||
gender = models.CharField(max_length=10, choices=GENDERS, null=True, blank=True, default=None)
|
gender = models.CharField(max_length=10, choices=GENDERS, null=True, blank=True, default=None)
|
||||||
dob = models.DateField(max_length=15, null=True, blank=True, default=None)
|
dob = models.DateField(max_length=15, null=True, blank=True, default=None)
|
||||||
image = models.ImageField(null=True, blank=True, default=None)
|
image = models.URLField(null=True, blank=True, default=None)
|
||||||
"""Codes"""
|
"""Codes"""
|
||||||
junior_code = models.CharField(max_length=10, null=True, blank=True, default=None)
|
junior_code = models.CharField(max_length=10, null=True, blank=True, default=None)
|
||||||
guardian_code = ArrayField(models.CharField(max_length=10, null=True, blank=True, default=None),null=True)
|
guardian_code = ArrayField(models.CharField(max_length=10, null=True, blank=True, default=None),null=True)
|
||||||
|
Reference in New Issue
Block a user