Commit 08e83721 authored by Gladys Forte's avatar Gladys Forte

serializer form optimize

parent f4b5d73e
......@@ -9,8 +9,16 @@ class ChangeRequestFormApproversSerializer(
def to_representation(self, instance):
ret = super().to_representation(instance)
try:
ret['company'] = model_to_dict(instance.user.department.company)
ret['department'] = model_to_dict(instance.user.department)
ret['company'] = {
"id": instance.user.department.company.id,
"code": instance.user.department.company.code,
"name": instance.user.department.company.name
}
ret['department'] = {
"id": instance.user.department.id,
"code": instance.user.department.code,
"name": instance.user.department.name
}
user_object = {
"id": instance.user.id,
"name": instance.user.name,
......@@ -60,16 +68,23 @@ class ChangeRequestFormApproversSerializer(
ret['editable_user'] = True
if instance.tmp_approver.company or instance.tmp_approver.delegation.lower() == 'requestor':
ret['company'] = model_to_dict(
instance.tmp_approver.company)
ret['company'] = {
"id": instance.tmp_approver.company.id,
"code": instance.tmp_approver.company.code,
"name": instance.tmp_approver.company.name
}
ret['editable_comp'] = False
else:
ret['company'] = None
ret['editable_comp'] = True
if instance.tmp_approver.department or instance.tmp_approver.delegation.lower() == 'requestor':
ret['department'] = model_to_dict(
instance.tmp_approver.department)
ret['department'] = {
"id": instance.tmp_approver.department.id,
"code": instance.tmp_approver.department.code,
"name": instance.tmp_approver.department.name
}
ret['editable_dept'] = False
else:
ret['department'] = None
......
......@@ -66,13 +66,27 @@ class ChangeRequestFormHeaderSerializer(
"contact_no": instance.requested_by_user.contact_no
}
ret['requested_to_company'] = model_to_dict(instance.requested_to_company)
ret['requested_to_department'] = model_to_dict(instance.requested_to_department)
# ret['requested_to_company'] = model_to_dict(instance.requested_to_company)
ret['requested_to_company'] = {
"id": instance.requested_to_company.id,
"code": instance.requested_to_company.code,
"name": instance.requested_to_company.name
}
# ret['requested_to_department'] = model_to_dict(instance.requested_to_department)
ret['requested_to_department'] = {
"id": instance.requested_to_department.id,
"code": instance.requested_to_department.code,
"name": instance.requested_to_department.name
}
ret['requested_to_user'] = requested_to_user
ret['requested_by_user'] = requested_by_user
ret['requested_by_department'] = model_to_dict(instance.requested_by_department)
ret['requested_by_department'] = {
"id": instance.requested_by_department.id,
"code": instance.requested_by_department.code,
"name": instance.requested_by_department.name
}
ret['template_object'] = model_to_dict(instance.template_no)
# added below
return ret
except Exception as e:
ret['action_required'] = "None"
......@@ -85,11 +99,6 @@ class ChangeRequestFormHeaderSerializer(
return ret
def setup_eager_loading(self, cls, queryset):
""" Perform necessary eager loading of data. """
queryset = queryset.prefetch_related('frm_approvers')
return queryset
class Meta:
model = models.ChangeRequestFormHeader
# fields = '__all__'
......
......@@ -372,6 +372,8 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
instance = self.get_object()
serializer = self.get_serializer(instance)
# queryset = self.get_serializer_class().setup_eager_loading(self.queryset)
models.Notification.objects.filter(
account_no=id_number,
form_code=form_code,
......
......@@ -164,7 +164,7 @@ def filter_overdue(base_queryset):
return_queryset = base_queryset
try:
exclude_status = ['Cancelled', 'Completed & Accepted']
exclude_status = ['Cancelled', 'Completed & Accepted', 'Closed']
now = datetime.now()
overdue = []
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment