Merge pull request #162 from KiwiTechLLC/sprint4

junior list api
This commit is contained in:
Ankitajain-kiwi
2023-08-08 16:06:52 +05:30
committed by GitHub
5 changed files with 32 additions and 22 deletions

View File

@ -149,7 +149,8 @@ SUCCESS_CODE = {
"3037": "Profile has been updated successfully.", "3037": "Profile has been updated successfully.",
"3038": "Status has been changed successfully.", "3038": "Status has been changed successfully.",
# notification read # notification read
"3039": "Notification read successfully" "3039": "Notification read successfully",
"3040": "Start article successfully"
} }
"""status code error""" """status code error"""
STATUS_CODE_ERROR = { STATUS_CODE_ERROR = {

View File

@ -0,0 +1,20 @@
# Generated by Django 4.2.2 on 2023-08-08 09:45
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('web_admin', '0004_alter_surveyoption_survey'),
('junior', '0020_junior_guardian_code_status'),
]
operations = [
migrations.AlterField(
model_name='juniorarticlepoints',
name='submitted_answer',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='submitted_answer', to='web_admin.surveyoption'),
),
]

View File

@ -149,7 +149,8 @@ class JuniorArticlePoints(models.Model):
junior = models.ForeignKey(Junior, on_delete=models.CASCADE, related_name='juniors_details', verbose_name='Junior') junior = models.ForeignKey(Junior, on_delete=models.CASCADE, related_name='juniors_details', verbose_name='Junior')
article = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='junior_articles') article = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='junior_articles')
question = models.ForeignKey(ArticleSurvey, on_delete=models.CASCADE, related_name='questions') question = models.ForeignKey(ArticleSurvey, on_delete=models.CASCADE, related_name='questions')
submitted_answer = models.ForeignKey(SurveyOption, on_delete=models.CASCADE, related_name='submitted_answer') submitted_answer = models.ForeignKey(SurveyOption, on_delete=models.SET_NULL, null=True,
related_name='submitted_answer')
# earn points""" # earn points"""
earn_points = models.IntegerField(blank=True, null=True, default=5) earn_points = models.IntegerField(blank=True, null=True, default=5)
is_attempt = models.BooleanField(default=False) is_attempt = models.BooleanField(default=False)

View File

@ -285,7 +285,7 @@ class AddJuniorSerializer(serializers.ModelSerializer):
referral_code=generate_code(ZOD, user_data.id), referral_code=generate_code(ZOD, user_data.id),
referral_code_used=guardian_data.referral_code, referral_code_used=guardian_data.referral_code,
is_password_set=False, is_verified=True, is_password_set=False, is_verified=True,
guardian_code_status=GUARDIAN_CODE_STATUS['2']) guardian_code_status=GUARDIAN_CODE_STATUS[1][0])
JuniorGuardianRelationship.objects.create(guardian=guardian_data, junior=junior_data, JuniorGuardianRelationship.objects.create(guardian=guardian_data, junior=junior_data,
relationship=relationship) relationship=relationship)
"""Generate otp""" """Generate otp"""
@ -405,7 +405,7 @@ class AddGuardianSerializer(serializers.ModelSerializer):
relationship = self.context['relationship'] relationship = self.context['relationship']
full_name = self.context['first_name'] + ' ' + self.context['last_name'] full_name = self.context['first_name'] + ' ' + self.context['last_name']
junior_data = Junior.objects.filter(auth__username=junior).last() junior_data = Junior.objects.filter(auth__username=junior).last()
junior_data.guardian_code_status = GUARDIAN_CODE_STATUS['3'] junior_data.guardian_code_status = GUARDIAN_CODE_STATUS[2][0]
junior_data.save() junior_data.save()
instance = User.objects.filter(username=email).last() instance = User.objects.filter(username=email).last()
if instance: if instance:

View File

@ -113,6 +113,7 @@ class JuniorListAPIView(viewsets.ModelViewSet):
"""Junior list of assosicated guardian""" """Junior list of assosicated guardian"""
serializer_class = JuniorDetailListSerializer serializer_class = JuniorDetailListSerializer
queryset = Junior.objects.all()
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
filter_backends = (SearchFilter,) filter_backends = (SearchFilter,)
search_fields = ['auth__first_name', 'auth__last_name'] search_fields = ['auth__first_name', 'auth__last_name']
@ -455,7 +456,6 @@ class ReAssignJuniorTaskAPIView(views.APIView):
class StartArticleAPIView(viewsets.ModelViewSet): class StartArticleAPIView(viewsets.ModelViewSet):
"""Start article""" """Start article"""
serializer_class = AddGuardianSerializer
permission_classes = [IsAuthenticated] permission_classes = [IsAuthenticated]
http_method_names = ('post',) http_method_names = ('post',)
@ -466,26 +466,14 @@ class StartArticleAPIView(viewsets.ModelViewSet):
article_id = request.data.get('article_id') article_id = request.data.get('article_id')
article_data = Article.objects.filter(id=article_id).last() article_data = Article.objects.filter(id=article_id).last()
if article_data: if article_data:
print("article_data====>", article_data,'===>',type(article_data))
question_query = ArticleSurvey.objects.filter(article=article_id) question_query = ArticleSurvey.objects.filter(article=article_id)
print("question_query====>",question_query,'===>',type(question_query))
for question in question_query: for question in question_query:
print("question====>", question, '===>', type(question)) if not JuniorArticlePoints.objects.filter(junior=junior_instance,
answer = SurveyOption.objects.filter(survey=question) article=article_data,
print("answer===>",answer,'====>',type(answer)) question=question):
for ans in answer:
JuniorArticlePoints.objects.create(junior=junior_instance, JuniorArticlePoints.objects.create(junior=junior_instance,
article=article_data, article=article_data,
question=question, question=question)
submitted_answer=ans) return custom_response(SUCCESS_CODE['3040'], response_status=status.HTTP_200_OK)
print("CREATED CREATED")
return custom_response(SUCCESS_CODE['3034'], response_status=status.HTTP_200_OK)
# use AddJuniorSerializer serializer
# serializer = AddGuardianSerializer(data=request.data, context=info)
# if serializer.is_valid():
# # save serializer
# serializer.save()
# return custom_response(SUCCESS_CODE['3034'], serializer.data, response_status=status.HTTP_200_OK)
# return custom_error_response(serializer.error, response_status=status.HTTP_400_BAD_REQUEST)
except Exception as e: except Exception as e:
return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST) return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)