mirror of
https://github.com/HamzaSha1/zod-backend.git
synced 2025-07-16 18:36:18 +00:00
update profile
This commit is contained in:
@ -23,12 +23,28 @@ class GoogleLoginSerializer(serializers.Serializer):
|
||||
"""meta class"""
|
||||
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):
|
||||
"""Reset Password after verification"""
|
||||
class Meta(object):
|
||||
"""Meta info"""
|
||||
model = Guardian
|
||||
fields = '__all__'
|
||||
fields = ['image']
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
"""update image """
|
||||
@ -36,21 +52,7 @@ class UpdateGuardianImageSerializer(serializers.ModelSerializer):
|
||||
instance.save()
|
||||
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):
|
||||
"""Reset Password after verification"""
|
||||
verification_code = serializers.CharField(max_length=10)
|
||||
|
@ -4,7 +4,9 @@ from rest_framework import viewsets, status, views
|
||||
from rest_framework.decorators import action
|
||||
import random
|
||||
import logging
|
||||
from django.utils import timezone
|
||||
import jwt
|
||||
from guardian.utils import upload_image_to_alibaba
|
||||
from django.contrib.auth import authenticate, login
|
||||
from guardian.models import Guardian
|
||||
from junior.models import Junior
|
||||
@ -135,12 +137,22 @@ class SigninWithApple(views.APIView):
|
||||
class UpdateProfileImage(views.APIView):
|
||||
permission_classes = [IsAuthenticated]
|
||||
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()
|
||||
serializer = UpdateJuniorProfileImageSerializer(junior_query, data=request.data, partial=True)
|
||||
else:
|
||||
image = request.data['image']
|
||||
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()
|
||||
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():
|
||||
serializer.save()
|
||||
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)
|
||||
if created:
|
||||
user_data.expired_at = expiry
|
||||
@ -336,7 +348,7 @@ class ReSendEmailOtp(viewsets.ModelViewSet):
|
||||
def create(self, request, *args, **kwargs):
|
||||
otp = generate_otp()
|
||||
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'])
|
||||
if created:
|
||||
email_data.expired_at = expiry
|
||||
|
@ -3,7 +3,8 @@
|
||||
from rest_framework.permissions import IsAuthenticated
|
||||
from rest_framework import viewsets, status
|
||||
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
|
||||
"""Import Django app"""
|
||||
from .serializers import (UserSerializer, CreateGuardianSerializer, TaskSerializer, TaskDetailsSerializer,
|
||||
@ -22,7 +23,6 @@ from django.db.models import Sum
|
||||
class SignupViewset(viewsets.ModelViewSet):
|
||||
"""Signup view set"""
|
||||
serializer_class = UserSerializer
|
||||
|
||||
def create(self, request, *args, **kwargs):
|
||||
"""Create user profile"""
|
||||
if request.data['user_type'] in ['1', '2']:
|
||||
@ -31,7 +31,7 @@ class SignupViewset(viewsets.ModelViewSet):
|
||||
serializer.save()
|
||||
"""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,
|
||||
user_type=str(request.data['user_type']), expired_at=expiry)
|
||||
"""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_error_response(serializer.errors, response_status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
|
||||
class SearchTaskListAPIView(viewsets.ModelViewSet):
|
||||
"""Update guardian profile"""
|
||||
serializer_class = TaskDetailsSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
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):
|
||||
"""Create guardian profile"""
|
||||
title = self.request.GET.get('title')
|
||||
if title:
|
||||
queryset = JuniorTask.objects.filter(guardian__user=request.user, task_name__icontains=title)\
|
||||
.order_by('due_date','created_at')
|
||||
queryset = self.get_queryset()
|
||||
|
||||
paginator = self.pagination_class()
|
||||
paginated_queryset = paginator.paginate_queryset(queryset, request)
|
||||
|
||||
serializer = TaskDetailsSerializer(paginated_queryset, many=True)
|
||||
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):
|
||||
"""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"""
|
||||
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)
|
||||
image = models.ImageField(null=True, blank=True, default=None)
|
||||
image = models.URLField(null=True, blank=True, default=None)
|
||||
"""Codes"""
|
||||
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)
|
||||
|
Reference in New Issue
Block a user