Commit a4e1431c authored by John Red Medrano's avatar John Red Medrano

Merge pull request #281 in RMS/api-main-service from RMSv2 to staging

* commit '5dc26e97':
  comment
  fixing listing
  fixing listing
  fxing the list of template
  restore template
  archive temp
  archive template
parents 3cc793b3 5dc26e97
...@@ -94,7 +94,7 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet): ...@@ -94,7 +94,7 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
"requested_to_user__name", "requested_to_template_name", "requested_to_user__name", "requested_to_template_name",
"requested_to_objective", "requested_to_priority", "description" "requested_to_objective", "requested_to_priority", "description"
) )
# comment
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
self.serializer_class = ChangeRequestFormHeaderSerializerList self.serializer_class = ChangeRequestFormHeaderSerializerList
...@@ -1110,29 +1110,17 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet): ...@@ -1110,29 +1110,17 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
def history(self, request, *args, **kwargs): def history(self, request, *args, **kwargs):
instance = self.get_object() instance = self.get_object()
list_his = []
history = models.ChangeRequestHistory.objects.filter( history = models.ChangeRequestHistory.objects.filter(
Q(form_code=instance) & Q(form_code=instance) &
Q(main_action='ACTION') & Q(main_action='ACTION') &
Q(entity='CR_FRM_APPROVER') Q(entity='CR_FRM_APPROVER')
).values().order_by('-created') ).values().order_by('-created')
list_his = []
for data in history: for data in history:
# list_his.append() data = data['toValue'].replace("'", '"').replace('None', '""')
x = data['toValue'].replace("'", '"').replace('None', '""') convert = json.loads(data)
convert = json.loads(x)
# print(convert)
# user_id = convert['user']
# user_instance = models.User.objects.get(
# code=str(user_id)
# )
# name = user_instance.name
# department = user_instance.department.name
# company = user_instance.department.company.name
# date_sent = convert['action_date']
# delegation = convert['delegation']
# action = convert['action']
# remarks = convert['remarks']
history_dict = { history_dict = {
"name": convert['user']['name'], "name": convert['user']['name'],
...@@ -1143,38 +1131,15 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet): ...@@ -1143,38 +1131,15 @@ class ChangeRequestFormsViewset(viewsets.ModelViewSet):
"action" : convert['action'], "action" : convert['action'],
"remarks" : convert['remarks'] "remarks" : convert['remarks']
} }
list_his.append(history_dict)
# self.serializer_class =
test = ChangeRequestFormApproversSerializer(list_his)
# test.is_valid(raise_exception=False)
# page = self.paginate_queryset(test)
# serializer = self.get_serializer(page, many=True)
# id_number = self.request.user.code
# self.queryset = change_request.list_by_user(id_number)
# self.queryset = change_request.filter_base(
# self.queryset,
# request.query_params.get('company_requested_to'),
# request.query_params.get('department_requested_to'),
# request.query_params.get('date_modified_from'),
# request.query_params.get('date_modified_to'),
# request.query_params.get('date_required_from'),
# request.query_params.get('date_required_to'),
# request.query_params.get('form_type'),
# )
# queryset = self.filter_queryset(self.queryset)
list_his.append(history_dict)
return Response( return Response(
{"results":list_his}, {"results":list_his},
status=status.HTTP_200_OK status=status.HTTP_200_OK
) )
#restore archived CR #restore archived CR # comment
def partial_update(self, request, *args, **kwargs): def partial_update(self, request, *args, **kwargs):
try: try:
kwargs['partial'] = True kwargs['partial'] = True
......
...@@ -4,6 +4,7 @@ from app.entities.models import ChangeRequestTemplateHeader, AllowedCompany ...@@ -4,6 +4,7 @@ from app.entities.models import ChangeRequestTemplateHeader, AllowedCompany
from app.applicationlayer.cms.master.template_list.serializers import ChangeRequestTemplatesSerializer from app.applicationlayer.cms.master.template_list.serializers import ChangeRequestTemplatesSerializer
from app.applicationlayer.utils import CustomPagination, status_message_response from app.applicationlayer.utils import CustomPagination, status_message_response
from rest_framework.exceptions import ParseError from rest_framework.exceptions import ParseError
from django.db.models import Q
class ChangeRequestTemplateHeaderMaster(viewsets.ModelViewSet): class ChangeRequestTemplateHeaderMaster(viewsets.ModelViewSet):
...@@ -21,11 +22,22 @@ class ChangeRequestTemplateHeaderMaster(viewsets.ModelViewSet): ...@@ -21,11 +22,22 @@ class ChangeRequestTemplateHeaderMaster(viewsets.ModelViewSet):
permit = AllowedCompany.objects.filter( permit = AllowedCompany.objects.filter(
group_pivots=department group_pivots=department
).count() ).count()
if permit <= 0: if permit <= 0:
raise ParseError('This department is not allowed') raise ParseError('This department is not allowed')
else: else:
queryset = ChangeRequestTemplateHeader.objects.filter( queryset = ChangeRequestTemplateHeader.objects.filter(
created_by_department=department requested_to_department=department
)
included = AllowedCompany.objects.filter(
Q(id_number=request.user.code) &
Q(create_change_request=True)
).values('group_pivots')
queryset = queryset.filter(
requested_to_department__in=included
).order_by('requested_to_template_name') ).order_by('requested_to_template_name')
page = self.paginate_queryset(queryset) page = self.paginate_queryset(queryset)
......
...@@ -75,7 +75,6 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet): ...@@ -75,7 +75,6 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet):
queryset = self.filter_queryset(self.get_queryset()) queryset = self.filter_queryset(self.get_queryset())
queryset = queryset.filter(created_by_user=request.user.code) queryset = queryset.filter(created_by_user=request.user.code)
self.serializer_class = ChangeRequestTemplatesSerializerList self.serializer_class = ChangeRequestTemplatesSerializerList
page = self.paginate_queryset(queryset) page = self.paginate_queryset(queryset)
...@@ -110,6 +109,15 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet): ...@@ -110,6 +109,15 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet):
template_no = self.kwargs['template_no'] template_no = self.kwargs['template_no']
existing_transaction = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no
)
if existing_transaction.count() > 0:
models.ChangeRequestTemplateHeader.objects.filter(
template_no=template_no
).update(is_active=False)
else:
enum_approver = enums.LogEntitiesEnum.ChangeRequestTemplateApprovers.value enum_approver = enums.LogEntitiesEnum.ChangeRequestTemplateApprovers.value
enum_stake = enums.LogEntitiesEnum.ChangeRequestTemplateStakeHolders.value enum_stake = enums.LogEntitiesEnum.ChangeRequestTemplateStakeHolders.value
enum_attach = enums.LogEntitiesEnum.ChangeRequestTemplateAttachments.value enum_attach = enums.LogEntitiesEnum.ChangeRequestTemplateAttachments.value
...@@ -165,8 +173,9 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet): ...@@ -165,8 +173,9 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet):
header, enum_header, header, enum_header,
models.ChangeRequestTemplateHeader models.ChangeRequestTemplateHeader
) )
return Response({"message": "Deleted"}, status=status.HTTP_200_OK) return Response({"message": "Deleted"}, status=status.HTTP_200_OK)
return Response({"message": "Archived"}, status=status.HTTP_200_OK)
except Exception as e: except Exception as e:
return Response(e, return Response(e,
status=status.HTTP_500_INTERNAL_SERVER_ERROR) status=status.HTTP_500_INTERNAL_SERVER_ERROR)
...@@ -260,6 +269,69 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet): ...@@ -260,6 +269,69 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet):
status=status.HTTP_400_BAD_REQUEST status=status.HTTP_400_BAD_REQUEST
) )
@action(
methods=['GET'], detail=False,
url_path='archived', url_name='archived'
)
def archived(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
queryset = queryset.filter(created_by_user=self.request.user.code,
is_active=False)
self.serializer_class = ChangeRequestTemplatesSerializerList
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
message = status_message_response(
200,
'success',
'List of Archived Templates found',
serializer.data
)
return self.get_paginated_response(message)
serializer = self.get_serializer(self.queryset, many=True)
return Response(
serializer.data,
status=status.HTTP_200_OK
)
#restore archived CR Template
@transaction.atomic
@action(
methods=['PATCH'], detail=True,
url_path='restore', url_name='restore'
)
def restore(self, request, *args, **kwargs):
try:
kwargs['partial'] = True
template_no = self.kwargs['template_no']
instance = models.ChangeRequestTemplateHeader.objects.filter(
template_no=template_no
)
instance.update(is_active=True)
message = status_message_response(
200, 'success',
'Archived Change Request Template restored',
''
)
return Response(message, status=status.HTTP_200_OK)
except Exception as e:
message = status_message_response(
500, 'failed',
'Request was not able to process' + str(e), []
)
return Response(message,
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
class ChangeRequestTemplatePost(APIView): class ChangeRequestTemplatePost(APIView):
......
...@@ -42,8 +42,8 @@ class rms: ...@@ -42,8 +42,8 @@ class rms:
enums_department = enums.UserTypeEnum.DEPARTMENT_USER_ADMIN.value enums_department = enums.UserTypeEnum.DEPARTMENT_USER_ADMIN.value
enums_user = enums.UserTypeEnum.USER.value enums_user = enums.UserTypeEnum.USER.value
access_error = "Logged user is not allowed to access this endpoint." access_error = "Logged user is not allowed to access this endpoint."
department_error = 'Department should be the same with the logged user' department_error = 'Department should be same with the logged user'
company_error = 'Company should be the same with the logged user' company_error = 'Company should be same with the logged user'
def user(self): def user(self):
return self.request.user return self.request.user
......
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