task assign to multiple junior

This commit is contained in:
jain
2023-09-01 12:14:15 +05:30
parent d24f075110
commit 0af2a35206
3 changed files with 94 additions and 65 deletions

View File

@ -218,7 +218,7 @@ class TaskSerializer(serializers.ModelSerializer):
class Meta(object): class Meta(object):
"""Meta info""" """Meta info"""
model = JuniorTask model = JuniorTask
fields = ['id', 'task_name','task_description','points', 'due_date', 'junior', 'default_image'] fields = ['id', 'task_name','task_description','points', 'due_date','default_image']
def validate_due_date(self, value): def validate_due_date(self, value):
"""validation on due date""" """validation on due date"""
@ -229,11 +229,27 @@ class TaskSerializer(serializers.ModelSerializer):
return value return value
def create(self, validated_data): def create(self, validated_data):
"""create default task image data""" """create default task image data"""
validated_data['guardian'] = Guardian.objects.filter(user=self.context['user']).last() guardian = Guardian.objects.filter(user=self.context['user']).last()
# update image of the task # update image of the task
images = self.context['image'] images = self.context['image']
validated_data['default_image'] = images junior_ids = self.context['junior_data']
instance = JuniorTask.objects.create(**validated_data) print("junior_ids==>", junior_ids, '==>', type(junior_ids))
print()
junior_data = junior_ids[0].split(',')
print("junior_data[0==>", junior_data, '==>', type(junior_data))
tasks_created = []
for junior_id in junior_data:
print("junior_id==>",junior_id,'==>',type(junior_id))
task_data = validated_data.copy()
task_data['guardian'] = guardian
task_data['default_image'] = images
task_data['junior'] = Junior.objects.filter(id=junior_id).last()
print("task_data===>", task_data, '===>', type(task_data))
print("task_data['junior']===>", task_data['junior'], '===>', type(task_data['junior']))
instance = JuniorTask.objects.create(**task_data)
tasks_created.append(instance)
print("tasks_created==>", tasks_created, '==>', type(tasks_created))
return instance return instance
class GuardianDetailSerializer(serializers.ModelSerializer): class GuardianDetailSerializer(serializers.ModelSerializer):

View File

@ -177,8 +177,14 @@ class CreateTaskAPIView(viewsets.ModelViewSet):
""" """
try: try:
image = request.data['default_image'] image = request.data['default_image']
junior = request.data['junior'] juniors = request.data['junior'].split(',')
print("juniors===>", juniors, '===>', type(juniors))
print()
for junior in juniors:
print("junior===>", junior, '===>', type(junior))
junior_id = Junior.objects.filter(id=junior).last() junior_id = Junior.objects.filter(id=junior).last()
print("junior_id===>", junior_id, '===>', type(junior_id))
if junior_id: if junior_id:
guardian_data = Guardian.objects.filter(user=request.user).last() guardian_data = Guardian.objects.filter(user=request.user).last()
index = junior_id.guardian_code.index(guardian_data.guardian_code) index = junior_id.guardian_code.index(guardian_data.guardian_code)
@ -191,6 +197,7 @@ class CreateTaskAPIView(viewsets.ModelViewSet):
if not junior.isnumeric(): if not junior.isnumeric():
"""junior value must be integer""" """junior value must be integer"""
return custom_error_response(ERROR_CODE['2047'], response_status=status.HTTP_400_BAD_REQUEST) return custom_error_response(ERROR_CODE['2047'], response_status=status.HTTP_400_BAD_REQUEST)
print("request.data===>", request.data, '===>', type(request.data))
data = request.data data = request.data
if 'https' in str(image): if 'https' in str(image):
image_data = image image_data = image
@ -201,8 +208,14 @@ class CreateTaskAPIView(viewsets.ModelViewSet):
image_url = upload_image_to_alibaba(image, filename) image_url = upload_image_to_alibaba(image, filename)
image_data = image_url image_data = image_url
data.pop('default_image') data.pop('default_image')
print("data===>",data,'===>',type(data))
junior_data = data.pop('junior')
print()
print("data===>", data, '===>', type(data))
print("junior_data===>", junior_data, '===>', type(junior_data))
# use TaskSerializer serializer # use TaskSerializer serializer
serializer = TaskSerializer(context={"user":request.user, "image":image_data}, data=data) serializer = TaskSerializer(context={"user":request.user, "image":image_data,
"junior_data":junior_data}, data=data)
if serializer.is_valid(): if serializer.is_valid():
# save serializer # save serializer
task = serializer.save() task = serializer.save()

View File

@ -181,32 +181,32 @@ AUTH_PASSWORD_VALIDATORS = [
# database query logs settings # database query logs settings
# Allows us to check db hits # Allows us to check db hits
# useful to optimize db query and hit # useful to optimize db query and hit
LOGGING = { # LOGGING = {
"version": 1, # "version": 1,
"filters": { # "filters": {
"require_debug_true": { # "require_debug_true": {
"()": "django.utils.log.RequireDebugTrue" # "()": "django.utils.log.RequireDebugTrue"
} # }
}, # },
"handlers": { # "handlers": {
"console": { # "console": {
"level": "DEBUG", # "level": "DEBUG",
"filters": [ # "filters": [
"require_debug_true" # "require_debug_true"
], # ],
"class": "logging.StreamHandler" # "class": "logging.StreamHandler"
} # }
}, # },
# database logger # # database logger
"loggers": { # "loggers": {
"django.db.backends": { # "django.db.backends": {
"level": "DEBUG", # "level": "DEBUG",
"handlers": [ # "handlers": [
"console" # "console"
] # ]
} # }
} # }
} # }
# Internationalization # Internationalization
# https://docs.djangoproject.com/en/3.0/topics/i18n/ # https://docs.djangoproject.com/en/3.0/topics/i18n/