Commit 8003affc authored by Gladys Forte's avatar Gladys Forte

Merge pull request #83 in RMS/api-main-service from gladys-dev2 to RMSv2

* commit '26afe2ea':
  added comment
  commit
  template upfdate
  update model
parents 309019c0 26afe2ea
......@@ -2,44 +2,7 @@ from app.entities import models
from rest_framework import serializers
from django.db.models import Q
from app.applicationlayer.cms.utils_cr import logged_user
class ChangeRequestFormHeaderSerializer(
serializers.ModelSerializer
):
def to_representation(self, instance):
ret = super().to_representation(instance)
try:
# id_number = self.context.get('request').META.get('user')
id_number = "USER-20190909-0000005"
current_level = models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=ret['form_code']) &
Q(deleted_at=None) &
(Q(action='') | Q(action=None))
).order_by('level')
if current_level.first()['user'] == id_number:
if instance.status.lower() == 'rejected':
approver = 'No'
elif instance.status.lower() == 'cancelled':
approver = 'No'
elif instance.status.lower() == 'closed':
approver = 'No'
else:
approver = 'Yes'
else:
approver = 'No'
ret['action'] = approver
return ret
except Exception as e:
ret['action'] = "No"
return ret
class Meta:
model = models.ChangeRequestFormHeader
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'form_code']
from drf_writable_nested import WritableNestedModelSerializer
class ChangeRequestFormApproversSerializer(
......@@ -69,7 +32,7 @@ class ChangeRequestFormApproversSerializer(
class Meta:
model = models.ChangeRequestFormApprovers
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestFormStakeHoldersSerializer(
......@@ -78,7 +41,7 @@ class ChangeRequestFormStakeHoldersSerializer(
class Meta:
model = models.ChangeRequestFormStakeHolders
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestFormAttachmentsSerializer(
......@@ -87,7 +50,7 @@ class ChangeRequestFormAttachmentsSerializer(
class Meta:
model = models.ChangeRequestFormAttachments
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestFormDetailsSerializer(
......@@ -96,4 +59,51 @@ class ChangeRequestFormDetailsSerializer(
class Meta:
model = models.ChangeRequestFormDetails
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestFormHeaderSerializer(
serializers.ModelSerializer
):
frm_approvers = ChangeRequestFormApproversSerializer(
many=True, required=False)
frm_stakes = ChangeRequestFormStakeHoldersSerializer(
many=True, required=False)
frm_attachments = ChangeRequestFormAttachmentsSerializer(
many=True, required=False)
frm_details = ChangeRequestFormDetailsSerializer(
many=True, required=False)
def to_representation(self, instance):
ret = super().to_representation(instance)
try:
# id_number = self.context.get('request').META.get('user')
id_number = "USER-20190909-0000005"
current_level = models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=ret['form_code']) &
Q(archived_at=None) &
(Q(action='') | Q(action=None))
).order_by('level')
if current_level.first()['user'] == id_number:
if instance.status.lower() == 'rejected':
approver = 'No'
elif instance.status.lower() == 'cancelled':
approver = 'No'
elif instance.status.lower() == 'closed':
approver = 'No'
else:
approver = 'Yes'
else:
approver = 'No'
ret['action'] = approver
return ret
except Exception as e:
ret['action'] = "No"
return ret
class Meta:
model = models.ChangeRequestFormHeader
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'form_code']
......@@ -257,43 +257,47 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(
deleted_at=None,
archived_at=None,
form_code=str(self.kwargs.get('form_code'))
).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
@action(detail=True,
methods=['get'],
url_path='history',
name="CR History")
def list_cr_history(self, request, form_code=None, **kwargs):
@transaction.atomic
def partial_update(self, request, *args, **kwargs):
form_code = self.kwargs['form_code']
form_code_list = []
form_code_list.append(form_code)
partial = kwargs.pop('partial', False)
instance = self.get_object()
for frmitem in models.ChangeRequestFormHeader.objects.filter(old_form_code__ne=None).order_by('created'):
template_no = kwargs['template_no']
if frmitem.form_code == form_code:
form_code_list.append(frmitem.old_form_code)
form_code = frmitem.old_form_code
tmp_no_exists = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no)
# remove duplicates
mylist = list(dict.fromkeys(form_code_list))
print(mylist)
if not tmp_no_exists:
serializer = self.get_serializer(instance, data=request.data, partial=partial)
serializer.is_valid(raise_exception=True)
queryset = models.ChangeRequestFormApprovers.objects.filter(
(Q(action__ne=None) & Q(action__ne='')),
form_code__in=mylist).order_by('created')
old_instance = model_to_dict(instance)
self.perform_update(serializer)
new_instance = serializer.data
self.serializer_class = serializers.ChangeRequestFormApproversSerializer
# print(new_instance)
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
crhistory_save(
enums.LogEnum.UPDATE.value,
enums.CREntitiesEnum.CR_TMP_HEADER.value,
new_instance['template_no'],
old_instance,
new_instance
)
return self.get_paginated_response(serializer.data)
return Response(serializer.data)
return Response(
"Template cannot edit due to existing transaction/s",
status=status.HTTP_400_BAD_REQUEST
)
class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
......@@ -334,10 +338,10 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
# if ObjectId:
# dbExisting = models.ChangeRequestFormApprovers.objects.filter(
# id=ObjectId,
# deleted_at=None).first()
# archived_at=None).first()
# if dbExisting:
# dbExisting.deleted_at = datetime.now()
# dbExisting.archived_at = datetime.now()
# dbExisting.save()
# # x = self.perform_create(serializer)
......@@ -371,7 +375,7 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
current_remarks = instance.remarks
instance.update(
set__deleted_at=datetime.utcnow()
set__archived_at=datetime.utcnow()
)
request.data['created'] = datetime.now().strftime('%Y-%m-%d, %H:%M:%S') # correct
......@@ -398,13 +402,13 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
next_approver = models.ChangeRequestFormApprovers.objects.filter(
level=str(next_level),
form_code=form_code,
deleted_at=None
archived_at=None
)
if action.lower() == 'approved':
models.ChangeRequestFormApprovers.objects.filter(
Q(deleted_at=None) & Q(level=str(next_level))
Q(archived_at=None) & Q(level=str(next_level))
).update(
date_sent=datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
)
......@@ -461,7 +465,7 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
elif action.lower() == 'completed':
models.ChangeRequestFormApprovers.objects.filter(
Q(deleted_at=None) & Q(level=str(next_level))
Q(archived_at=None) & Q(level=str(next_level))
).update(
date_sent=datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
)
......@@ -519,13 +523,13 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
#------------
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self)
self.queryset = QuerySetHelper.Filter(self)
return super(ChangeRequestFormApproversViewset, self).list(request)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
......@@ -536,7 +540,7 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
pagination_class = paginators.SimplePageNumberPagination
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self)
self.queryset = QuerySetHelper.Filter(self)
return super(
......@@ -552,10 +556,10 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
if ObjectId:
dbExisting = models.ChangeRequestFormAttachments.objects.filter(
id=ObjectId,
deleted_at=None).first()
archived_at=None).first()
if dbExisting:
dbExisting.deleted_at = datetime.now()
dbExisting.archived_at = datetime.now()
dbExisting.save()
self.perform_create(serializer)
......@@ -578,7 +582,7 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
......@@ -590,7 +594,7 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
pagination_class = paginators.SimplePageNumberPagination
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self)
self.queryset = QuerySetHelper.Filter(self)
return super(ChangeRequestFormStakeHoldersViewset, self).list(request)
......@@ -603,10 +607,10 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
if ObjectId:
dbExisting = models.ChangeRequestFormStakeHolders.objects.filter(
id=ObjectId,
deleted_at=None).first()
archived_at=None).first()
if dbExisting:
dbExisting.deleted_at = datetime.now()
dbExisting.archived_at = datetime.now()
dbExisting.save()
self.perform_create(serializer)
......@@ -619,7 +623,7 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
......@@ -631,7 +635,7 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
pagination_class = paginators.SimplePageNumberPagination
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self)
self.queryset = QuerySetHelper.Filter(self)
return super(ChangeRequestFormDetailsViewset, self).list(request)
......@@ -644,10 +648,10 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
if ObjectId:
dbExisting = models.ChangeRequestFormDetails.objects.filter(
id=ObjectId,
deleted_at=None).first()
archived_at=None).first()
if dbExisting:
dbExisting.deleted_at = datetime.now()
dbExisting.archived_at = datetime.now()
dbExisting.save()
self.perform_create(serializer)
......@@ -660,7 +664,7 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
......
from app.entities import models
from rest_framework import serializers
from django.db.models import Q
class ChangeRequestTemplatesSerializer(
serializers.ModelSerializer
):
class Meta:
model = models.ChangeRequestTemplateHeader
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'template_no']
from drf_writable_nested import WritableNestedModelSerializer
class ChangeRequestTemplateApproversSerializer(
......@@ -18,7 +10,7 @@ class ChangeRequestTemplateApproversSerializer(
class Meta:
model = models.ChangeRequestTemplateApprovers
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestTemplateStakeHoldersSerializer(
......@@ -27,7 +19,7 @@ class ChangeRequestTemplateStakeHoldersSerializer(
class Meta:
model = models.ChangeRequestTemplateStakeHolders
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestTemplateAttachmentsSerializer(
......@@ -36,7 +28,7 @@ class ChangeRequestTemplateAttachmentsSerializer(
class Meta:
model = models.ChangeRequestTemplateAttachments
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
read_only_fields = ['created', 'archived_at', 'code']
class ChangeRequestTemplateDetailsSerializer(
......@@ -45,4 +37,30 @@ class ChangeRequestTemplateDetailsSerializer(
class Meta:
model = models.ChangeRequestTemplateDetails
fields = '__all__'
read_only_fields = ['created', 'deleted_at', 'code']
\ No newline at end of file
read_only_fields = ['created', 'archived_at', 'code']
# comment
class ChangeRequestTemplatesSerializer(
WritableNestedModelSerializer
):
tmp_approvers = ChangeRequestTemplateApproversSerializer(
many=True, required=False)
tmp_stakes = ChangeRequestTemplateStakeHoldersSerializer(
many=True, required=False)
tmp_attachments = ChangeRequestTemplateAttachmentsSerializer(
many=True, required=False)
tmp_details = ChangeRequestTemplateDetailsSerializer(
many=True, required=False)
class Meta:
model = models.ChangeRequestTemplateHeader
# fields = '__all__'
fields = ('template_no', 'requested_to_template_name',
'requested_to_objective', 'requested_to_target_date',
'requested_to_priority', 'description', 'created',
'requested_to_template_id', 'requested_to_company',
'requested_to_department', 'requested_to_user',
'created_by_user', 'created_by_department', 'tmp_approvers',
'tmp_stakes', 'tmp_attachments', 'tmp_details')
read_only_fields = ['created', 'archived_at', 'template_no']
\ No newline at end of file
......@@ -22,7 +22,13 @@ from rest_framework.exceptions import ValidationError
from django.db import transaction, IntegrityError, connection
from app.applicationlayer.utils import QuerySetHelper
from app.businesslayer.changerequest import change_request
from app.applicationlayer.cms.utils_cr import number_generator
from app.applicationlayer.cms.utils_cr import number_generator, crhistory_save
from django.shortcuts import get_object_or_404
from rest_framework.generics import GenericAPIView
from rest_framework.mixins import UpdateModelMixin
from django.forms.models import model_to_dict
from app.entities import enums
class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
......@@ -41,7 +47,6 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(
deleted_at=None,
template_no=str(self.kwargs.get('template_no'))
).first()
......@@ -53,104 +58,91 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
template_no = self.kwargs['template_no']
instance = models.ChangeRequestTemplateHeader.objects.filter(
Q(template_no=template_no) &
Q(deleted_at=None)
).update(deleted_at=datetime.now())
Q(archived_at=None)
).update(archived_at=datetime.now())
return Response({"message": "Deleted"}, status=status.HTTP_200_OK)
except Exception as e:
return Response(e,
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
@transaction.atomic
def partial_update(self, request, *args, **kwargs):
try:
kwargs['partial'] = True
template_no = self.kwargs['template_no']
instance = models.ChangeRequestTemplateHeader.objects.filter(
template_no=template_no
).order_by('-deleted_at')
instance.update(deleted_at=None)
message = "Archived Change Request restored"
return Response(message, status=status.HTTP_200_OK)
except Exception as e:
message = {
500, 'failed',
'Request was not able to process' + str(e), []
}
return Response(message,
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
partial = kwargs.pop('partial', False)
instance = self.get_object()
template_no = kwargs['template_no']
class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
tmp_no_exists = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no)
queryset = models.ChangeRequestTemplateApprovers.objects.all()
serializer_class = serializers.ChangeRequestTemplateApproversSerializer
pagination_class = paginators.SimplePageNumberPagination
lookup_field = "code"
if not tmp_no_exists:
serializer = self.get_serializer(instance, data=request.data, partial=partial)
serializer.is_valid(raise_exception=True)
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = QuerySetHelper.Sort(self)
old_instance = model_to_dict(instance)
self.perform_update(serializer)
new_instance = serializer.data
return super(ChangeRequestTemplateApproversViewset, self).list(request)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
class ChangeRequestTemplateAttachmentsViewset(meviewsets.ModelViewSet):
# print(new_instance)
queryset = models.ChangeRequestTemplateAttachments.objects.all()
serializer_class = serializers.ChangeRequestTemplateAttachmentsSerializer
pagination_class = paginators.SimplePageNumberPagination
lookup_field = "code"
crhistory_save(
enums.LogEnum.UPDATE.value,
enums.CREntitiesEnum.CR_TMP_HEADER.value,
new_instance['template_no'],
old_instance,
new_instance
)
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = QuerySetHelper.Sort(self)
return super(
ChangeRequestTemplateAttachmentsViewset, self
).list(request)
return Response(serializer.data)
return Response(
"Unable to edit due to existing transaction",
status=status.HTTP_400_BAD_REQUEST
)
class ChangeRequestTemplateStakeHoldersViewset(meviewsets.ModelViewSet):
@action(
methods=['PATCH'], detail=True,
url_path='archived', url_name='archived'
)
def archived(self, request, *args, **kwargs):
queryset = models.ChangeRequestTemplateStakeHolders.objects.all()
serializer_class = serializers.ChangeRequestTemplateStakeHoldersSerializer
pagination_class = paginators.SimplePageNumberPagination
lookup_field = "code"
template_no = kwargs['template_no']
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = QuerySetHelper.Sort(self)
tmp_no_exists = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no)
return super(ChangeRequestTemplateStakeHoldersViewset, self).list(request)
if not tmp_no_exists:
models.ChangeRequestTemplateDetails.objects.filter(
template_no=template_no
).update(archived_at=datetime.now())
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
models.ChangeRequestTemplateAttachments.objects.filter(
template_no=template_no
).update(archived_at=datetime.now())
models.ChangeRequestTemplateHeader.objects.filter(
template_no=template_no
).update(archived_at=datetime.now())
class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet):
models.ChangeRequestTemplateApprovers.objects.filter(
template_no=template_no
).update(archived_at=datetime.now())
queryset = models.ChangeRequestTemplateDetails.objects.all()
serializer_class = serializers.ChangeRequestTemplateDetailsSerializer
pagination_class = paginators.SimplePageNumberPagination
lookup_field = "code"
models.ChangeRequestTemplateStakeHolders.objects.filter(
template_no=template_no
).update(archived_at=datetime.now())
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestTemplateDetailsViewset, self).list(request)
return Response(
"Template successfully archived",
status=status.HTTP_200_OK
)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
return Response(
"Unable to archive due to existing transaction",
status=status.HTTP_400_BAD_REQUEST
)
class ChangeRequestTemplatePost(APIView):
......@@ -269,3 +261,80 @@ class ChangeRequestTemplatePost(APIView):
}
return Response(message,
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestTemplateApprovers.objects.all()
serializer_class = serializers.ChangeRequestTemplateApproversSerializer
pagination_class = paginators.SimplePageNumberPagination
lookup_field = "code"
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestTemplateApproversViewset, self).list(request)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
class ChangeRequestTemplateAttachmentsViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestTemplateAttachments.objects.all()
serializer_class = serializers.ChangeRequestTemplateAttachmentsSerializer
pagination_class = paginators.SimplePageNumberPagination
lookup_field = "code"
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self)
return super(
ChangeRequestTemplateAttachmentsViewset, self
).list(request)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
class ChangeRequestTemplateStakeHoldersViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestTemplateStakeHolders.objects.all()
serializer_class = serializers.ChangeRequestTemplateStakeHoldersSerializer
pagination_class = paginators.SimplePageNumberPagination
lookup_field = "code"
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestTemplateStakeHoldersViewset, self).list(request)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestTemplateDetails.objects.all()
serializer_class = serializers.ChangeRequestTemplateDetailsSerializer
pagination_class = paginators.SimplePageNumberPagination
lookup_field = "code"
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestTemplateDetailsViewset, self).list(request)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
\ No newline at end of file
......@@ -153,7 +153,7 @@ def receiver_body(
def get_template_instance(form_code):
template_instance = models.ChangeRequestFormHeader.objects.filter(
Q(form_code=form_code) &
Q(deleted_at=None)
Q(archived_at=None)
).first()
return template_instance
......@@ -436,3 +436,14 @@ def cancel_overdue(request):
email_content=email_content_cancel
)
return True
def crhistory_save(action, entity, form_code, fromValue, toValue):
models.ChangeRequestHistory.objects.create(
action=action,
entity=entity,
form_code=form_code,
fromValue=fromValue,
toValue=toValue
)
return True
\ No newline at end of file
......@@ -22,19 +22,19 @@ def list_by_user(user_id_number):
approver = models.ChangeRequestFormApprovers.objects.filter(
Q(user=user_id_number) &
Q(deleted_at=None)
Q(archived_at=None)
)
approver = [data.form_code for data in approver]
stake = models.ChangeRequestFormStakeHolders.objects.filter(
Q(user=user_id_number) &
Q(deleted_at=None)
Q(archived_at=None)
)
stake = [data.form_code for data in stake]
headers = models.ChangeRequestFormHeader.objects.filter(
deleted_at=None,
archived_at=None,
requested_by_user=user_id_number
)
headers = [data.form_code for data in headers]
......@@ -52,7 +52,7 @@ def list_by_user(user_id_number):
# priviledgedList = models.ChangeRequestFormHeader.objects.filter(
# requested_to_department__in=crViews,
# deleted_at=None,
# archived_at=None,
# )
# priviledgedCrs = [data['form_code'] for data in priviledgedList]
......@@ -62,7 +62,7 @@ def list_by_user(user_id_number):
return_queryset = models.ChangeRequestFormHeader.objects.filter(
form_code__in=form_code,
deleted_at=None,
archived_at=None,
)
exclude = return_queryset.filter(
status__iexact='Draft',
......
# Generated by Django 2.2 on 2019-09-11 17:15
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0007_auto_20190911_1102'),
]
operations = [
migrations.AlterField(
model_name='changerequesthistory',
name='form_code',
field=models.CharField(blank=True, max_length=255, null=True),
),
]
# Generated by Django 2.2 on 2019-09-11 18:45
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('entities', '0008_auto_20190911_1715'),
]
operations = [
migrations.RenameField(
model_name='changerequestformapprovers',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformattachments',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformdetails',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformheader',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequestformstakeholders',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplateapprovers',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplateattachments',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplatedetails',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplateheader',
old_name='deleted_at',
new_name='archived_at',
),
migrations.RenameField(
model_name='changerequesttemplatestakeholders',
old_name='deleted_at',
new_name='archived_at',
),
]
......@@ -373,7 +373,7 @@ class BaseHeader(models.Model):
created = models.DateTimeField(auto_now_add=True)
deleted_at = models.DateTimeField(
archived_at = models.DateTimeField(
blank=True,
null=True)
......@@ -398,7 +398,7 @@ class BaseApprover(models.Model):
created = models.DateTimeField(
blank=True,
null=True)
deleted_at = models.DateTimeField(
archived_at = models.DateTimeField(
blank=True,
null=True)
......@@ -420,7 +420,7 @@ class BaseStakeholder(models.Model):
created = models.DateTimeField(
blank=True,
null=True)
deleted_at = models.DateTimeField(
archived_at = models.DateTimeField(
blank=True,
null=True)
......@@ -451,7 +451,7 @@ class BaseAttachment(models.Model):
created = models.DateTimeField(
blank=True,
null=True)
deleted_at = models.DateTimeField(
archived_at = models.DateTimeField(
blank=True,
null=True)
......@@ -468,7 +468,7 @@ class BaseDetails(models.Model):
created = models.DateTimeField(
blank=True,
null=True)
deleted_at = models.DateTimeField(
archived_at = models.DateTimeField(
blank=True,
null=True)
......@@ -518,7 +518,7 @@ class ChangeRequestTemplateHeader(BaseHeader):
self.save()
def delete(self):
self.deleted_at = datetime.utcnow
self.archived_at = datetime.utcnow
self.save()
......@@ -845,7 +845,10 @@ class ChangeRequestHistory(AuditClass):
(tag.value, tag.value) for tag in enums.CREntitiesEnum],
default=enums.CREntitiesEnum.CR_FRM_HEADER.value,
max_length=50)
form_code = models.IntegerField()
form_code = models.CharField(
max_length=255,
blank=True,
null=True)
fromValue = models.TextField(blank=True, null=True)
toValue = models.TextField(blank=True, null=True)
......
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