diff --git a/base/messages.py b/base/messages.py index cf85f2b..05b4ec3 100644 --- a/base/messages.py +++ b/base/messages.py @@ -149,7 +149,8 @@ SUCCESS_CODE = { "3037": "Profile has been updated successfully.", "3038": "Status has been changed successfully.", # notification read - "3039": "Notification read successfully" + "3039": "Notification read successfully", + "3040": "Start article successfully" } """status code error""" STATUS_CODE_ERROR = { diff --git a/junior/migrations/0021_alter_juniorarticlepoints_submitted_answer.py b/junior/migrations/0021_alter_juniorarticlepoints_submitted_answer.py new file mode 100644 index 0000000..45ce9a4 --- /dev/null +++ b/junior/migrations/0021_alter_juniorarticlepoints_submitted_answer.py @@ -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'), + ), + ] diff --git a/junior/models.py b/junior/models.py index 3adf459..3d2aaa4 100644 --- a/junior/models.py +++ b/junior/models.py @@ -149,7 +149,8 @@ class JuniorArticlePoints(models.Model): 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') 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 = models.IntegerField(blank=True, null=True, default=5) is_attempt = models.BooleanField(default=False) diff --git a/junior/serializers.py b/junior/serializers.py index ea79ed5..1917942 100644 --- a/junior/serializers.py +++ b/junior/serializers.py @@ -285,7 +285,7 @@ class AddJuniorSerializer(serializers.ModelSerializer): referral_code=generate_code(ZOD, user_data.id), referral_code_used=guardian_data.referral_code, 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, relationship=relationship) """Generate otp""" @@ -405,7 +405,7 @@ class AddGuardianSerializer(serializers.ModelSerializer): relationship = self.context['relationship'] full_name = self.context['first_name'] + ' ' + self.context['last_name'] 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() instance = User.objects.filter(username=email).last() if instance: diff --git a/junior/views.py b/junior/views.py index 449ac5f..98428ce 100644 --- a/junior/views.py +++ b/junior/views.py @@ -113,6 +113,7 @@ class JuniorListAPIView(viewsets.ModelViewSet): """Junior list of assosicated guardian""" serializer_class = JuniorDetailListSerializer + queryset = Junior.objects.all() permission_classes = [IsAuthenticated] filter_backends = (SearchFilter,) search_fields = ['auth__first_name', 'auth__last_name'] @@ -455,7 +456,6 @@ class ReAssignJuniorTaskAPIView(views.APIView): class StartArticleAPIView(viewsets.ModelViewSet): """Start article""" - serializer_class = AddGuardianSerializer permission_classes = [IsAuthenticated] http_method_names = ('post',) @@ -466,26 +466,14 @@ class StartArticleAPIView(viewsets.ModelViewSet): article_id = request.data.get('article_id') article_data = Article.objects.filter(id=article_id).last() if article_data: - print("article_data====>", article_data,'===>',type(article_data)) question_query = ArticleSurvey.objects.filter(article=article_id) - print("question_query====>",question_query,'===>',type(question_query)) for question in question_query: - print("question====>", question, '===>', type(question)) - answer = SurveyOption.objects.filter(survey=question) - print("answer===>",answer,'====>',type(answer)) - for ans in answer: + if not JuniorArticlePoints.objects.filter(junior=junior_instance, + article=article_data, + question=question): JuniorArticlePoints.objects.create(junior=junior_instance, article=article_data, - question=question, - submitted_answer=ans) - 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) + question=question) + return custom_response(SUCCESS_CODE['3040'], response_status=status.HTTP_200_OK) except Exception as e: return custom_error_response(str(e), response_status=status.HTTP_400_BAD_REQUEST)