Commit 6fc9861f authored by Gladys Forte's avatar Gladys Forte

Template Edit

parent b5cab699
...@@ -10,7 +10,7 @@ class ChangeRequestTemplateApproversSerializer( ...@@ -10,7 +10,7 @@ class ChangeRequestTemplateApproversSerializer(
class Meta: class Meta:
model = models.ChangeRequestTemplateApprovers model = models.ChangeRequestTemplateApprovers
fields = '__all__' fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code'] read_only_fields = ['created', 'code']
class ChangeRequestTemplateStakeHoldersSerializer( class ChangeRequestTemplateStakeHoldersSerializer(
...@@ -19,7 +19,7 @@ class ChangeRequestTemplateStakeHoldersSerializer( ...@@ -19,7 +19,7 @@ class ChangeRequestTemplateStakeHoldersSerializer(
class Meta: class Meta:
model = models.ChangeRequestTemplateStakeHolders model = models.ChangeRequestTemplateStakeHolders
fields = '__all__' fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code'] read_only_fields = ['created', 'code']
class ChangeRequestTemplateAttachmentsSerializer( class ChangeRequestTemplateAttachmentsSerializer(
...@@ -28,7 +28,7 @@ class ChangeRequestTemplateAttachmentsSerializer( ...@@ -28,7 +28,7 @@ class ChangeRequestTemplateAttachmentsSerializer(
class Meta: class Meta:
model = models.ChangeRequestTemplateAttachments model = models.ChangeRequestTemplateAttachments
fields = '__all__' fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code'] read_only_fields = ['created', 'code']
class ChangeRequestTemplateDetailsSerializer( class ChangeRequestTemplateDetailsSerializer(
...@@ -37,20 +37,20 @@ class ChangeRequestTemplateDetailsSerializer( ...@@ -37,20 +37,20 @@ class ChangeRequestTemplateDetailsSerializer(
class Meta: class Meta:
model = models.ChangeRequestTemplateDetails model = models.ChangeRequestTemplateDetails
fields = '__all__' fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code'] read_only_fields = ['created', 'code']
# comment
class ChangeRequestTemplatesSerializer( class ChangeRequestTemplatesSerializer(
WritableNestedModelSerializer serializers.ModelSerializer
): ):
tmp_approvers = ChangeRequestTemplateApproversSerializer( tmp_approvers = ChangeRequestTemplateApproversSerializer(
many=True, required=False) many=True, read_only=True)
tmp_stakes = ChangeRequestTemplateStakeHoldersSerializer( tmp_stakes = ChangeRequestTemplateStakeHoldersSerializer(
many=True, required=False) many=True, read_only=True)
tmp_attachments = ChangeRequestTemplateAttachmentsSerializer( tmp_attachments = ChangeRequestTemplateAttachmentsSerializer(
many=True, required=False) many=True, read_only=True)
tmp_details = ChangeRequestTemplateDetailsSerializer( tmp_details = ChangeRequestTemplateDetailsSerializer(
many=True, required=False) many=True, read_only=True)
class Meta: class Meta:
model = models.ChangeRequestTemplateHeader model = models.ChangeRequestTemplateHeader
...@@ -63,4 +63,4 @@ class ChangeRequestTemplatesSerializer( ...@@ -63,4 +63,4 @@ class ChangeRequestTemplatesSerializer(
'created_by_user', 'created_by_department', 'tmp_approvers', 'created_by_user', 'created_by_department', 'tmp_approvers',
'tmp_stakes', 'tmp_attachments', 'tmp_details') 'tmp_stakes', 'tmp_attachments', 'tmp_details')
read_only_fields = ['created', 'archived_at', 'template_no'] read_only_fields = ['created', 'template_no']
\ No newline at end of file \ No newline at end of file
...@@ -20,7 +20,9 @@ import requests ...@@ -20,7 +20,9 @@ import requests
from django.conf import settings from django.conf import settings
from rest_framework.exceptions import ValidationError from rest_framework.exceptions import ValidationError
from django.db import transaction, IntegrityError, connection from django.db import transaction, IntegrityError, connection
from app.applicationlayer.utils import QuerySetHelper, CustomPagination, status_message_response from app.applicationlayer.utils import (QuerySetHelper,
CustomPagination,
status_message_response)
from app.businesslayer.changerequest import change_request from app.businesslayer.changerequest import change_request
from app.applicationlayer.cms.utils_cr import ( from app.applicationlayer.cms.utils_cr import (
number_generator, crhistory_save, entity_log_bulk number_generator, crhistory_save, entity_log_bulk
...@@ -36,6 +38,9 @@ from django.db.models import Q ...@@ -36,6 +38,9 @@ from django.db.models import Q
from app.applicationlayer.management.account.serializer import ChangeRequestList from app.applicationlayer.management.account.serializer import ChangeRequestList
from app.applicationlayer.utils import log_save, CustomPagination from app.applicationlayer.utils import log_save, CustomPagination
from rest_framework.exceptions import ParseError from rest_framework.exceptions import ParseError
from app.businesslayer.changerequest.change_request_template import (
tmp_add_edit_delete
)
class UserList(APIView): class UserList(APIView):
...@@ -145,7 +150,6 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet): ...@@ -145,7 +150,6 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
# @transaction.atomic() # @transaction.atomic()
def destroy(self, request, *args, **kwargs): def destroy(self, request, *args, **kwargs):
# try: # try:
template_no = self.kwargs['template_no'] template_no = self.kwargs['template_no']
enum_approver = enums.LogEntitiesEnum.ChangeRequestTemplateApprovers.value enum_approver = enums.LogEntitiesEnum.ChangeRequestTemplateApprovers.value
...@@ -170,7 +174,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet): ...@@ -170,7 +174,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
if stake.count() > 0: if stake.count() > 0:
entity_log_bulk( entity_log_bulk(
approver, enum_stake, stake, enum_stake,
models.ChangeRequestTemplateStakeHolders models.ChangeRequestTemplateStakeHolders
) )
...@@ -180,7 +184,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet): ...@@ -180,7 +184,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
if attachment.count() > 0: if attachment.count() > 0:
entity_log_bulk( entity_log_bulk(
approver, enum_attach, attachment, enum_attach,
models.ChangeRequestTemplateAttachments models.ChangeRequestTemplateAttachments
) )
...@@ -190,18 +194,20 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet): ...@@ -190,18 +194,20 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
if details.count() > 0: if details.count() > 0:
entity_log_bulk( entity_log_bulk(
approver, enum_detail, details, enum_detail,
models.ChangeRequestTemplateDetails models.ChangeRequestTemplateDetails
) )
header = models.ChangeRequestTemplateHeader.objects.filter( header = models.ChangeRequestTemplateHeader.objects.filter(
template_no=template_no template_no=template_no
) )
if header.count() > 0: if header.count() > 0:
entity_log_bulk( entity_log_bulk(
approver, 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)
# except Exception as e: # except Exception as e:
# return Response(e, # return Response(e,
...@@ -215,74 +221,73 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet): ...@@ -215,74 +221,73 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
template_no = kwargs['template_no'] template_no = kwargs['template_no']
body_data = request.data
tmp_no_exists = models.ChangeRequestFormHeader.objects.filter( tmp_no_exists = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no) template_no=template_no)
if not tmp_no_exists: if not tmp_no_exists:
serializer = self.get_serializer(instance, data=request.data, partial=partial) serializer = self.get_serializer(instance,
serializer.is_valid(raise_exception=True) data=request.data,
partial=partial)
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(instance) old_instance = model_to_dict(instance)
self.perform_update(serializer) self.perform_update(serializer)
new_instance = serializer.data new_instance = serializer.data
# print(new_instance) log_save(
crhistory_save(
enums.LogEnum.UPDATE.value, enums.LogEnum.UPDATE.value,
enums.CREntitiesEnum.CR_TMP_HEADER.value, enums.LogEntitiesEnum.ChangeRequestTemplateHeader.value,
new_instance['template_no'], old_instance['id'],
old_instance, old_instance,
new_instance new_instance
) )
return Response(serializer.data) tmp_add_edit_delete(
body_data['tmp_approvers'],
return Response( models.ChangeRequestTemplateApprovers,
"Unable to edit due to existing transaction", enums.LogEntitiesEnum.ChangeRequestTemplateApprovers.value,
status=status.HTTP_400_BAD_REQUEST serializers.ChangeRequestTemplateApproversSerializer,
partial,
self,
template_no
) )
@action( tmp_add_edit_delete(
methods=['PATCH'], detail=True, body_data['tmp_stakes'],
url_path='archived', url_name='archived' models.ChangeRequestTemplateStakeHolders,
enums.LogEntitiesEnum.ChangeRequestTemplateStakeHolders.value,
serializers.ChangeRequestTemplateStakeHoldersSerializer,
partial,
self,
template_no
) )
def archived(self, request, *args, **kwargs):
template_no = kwargs['template_no']
tmp_no_exists = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no)
if not tmp_no_exists:
models.ChangeRequestTemplateDetails.objects.filter(
template_no=template_no
).update(archived_at=datetime.now())
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())
models.ChangeRequestTemplateApprovers.objects.filter(
template_no=template_no
).update(archived_at=datetime.now())
models.ChangeRequestTemplateStakeHolders.objects.filter(
template_no=template_no
).update(archived_at=datetime.now())
tmp_add_edit_delete(
body_data['tmp_attachments'],
models.ChangeRequestTemplateAttachments,
enums.LogEntitiesEnum.ChangeRequestTemplateAttachments.value,
serializers.ChangeRequestTemplateAttachmentsSerializer,
partial,
self,
template_no
)
return Response( tmp_add_edit_delete(
"Template successfully archived", body_data['tmp_details'],
status=status.HTTP_200_OK models.ChangeRequestTemplateDetails,
enums.LogEntitiesEnum.ChangeRequestTemplateDetails.value,
serializers.ChangeRequestTemplateDetailsSerializer,
partial,
self,
template_no
) )
return Response(serializer.data)
return Response( return Response(
"Unable to archive due to existing transaction", "Unable to edit due to existing transaction",
status=status.HTTP_400_BAD_REQUEST status=status.HTTP_400_BAD_REQUEST
) )
...@@ -413,17 +418,9 @@ class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet): ...@@ -413,17 +418,9 @@ class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
lookup_field = "code" lookup_field = "code"
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self) self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestTemplateApproversViewset, self).list(request) 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): class ChangeRequestTemplateAttachmentsViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestTemplateAttachments.objects.all() queryset = models.ChangeRequestTemplateAttachments.objects.all()
...@@ -432,17 +429,11 @@ class ChangeRequestTemplateAttachmentsViewset(meviewsets.ModelViewSet): ...@@ -432,17 +429,11 @@ class ChangeRequestTemplateAttachmentsViewset(meviewsets.ModelViewSet):
lookup_field = "code" lookup_field = "code"
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self) self.queryset = QuerySetHelper.Sort(self)
return super( return super(
ChangeRequestTemplateAttachmentsViewset, self ChangeRequestTemplateAttachmentsViewset, self
).list(request) ).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): class ChangeRequestTemplateStakeHoldersViewset(meviewsets.ModelViewSet):
...@@ -452,16 +443,9 @@ class ChangeRequestTemplateStakeHoldersViewset(meviewsets.ModelViewSet): ...@@ -452,16 +443,9 @@ class ChangeRequestTemplateStakeHoldersViewset(meviewsets.ModelViewSet):
lookup_field = "code" lookup_field = "code"
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self) self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestTemplateStakeHoldersViewset, self).list(request) 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): class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet):
...@@ -471,12 +455,5 @@ class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet): ...@@ -471,12 +455,5 @@ class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet):
lookup_field = "code" lookup_field = "code"
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self) self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestTemplateDetailsViewset, self).list(request) 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
...@@ -22,7 +22,7 @@ CR_FRONT_LINK = settings.CR_FRONT_LINK ...@@ -22,7 +22,7 @@ CR_FRONT_LINK = settings.CR_FRONT_LINK
def entity_log_bulk(queryset, entity, tbl): def entity_log_bulk(queryset, entity, tbl):
try: try:
print(entity) # print(entity)
for data in queryset: for data in queryset:
test = model_to_dict(data) test = model_to_dict(data)
log_save( log_save(
......
from django.shortcuts import render
from app.entities import models
from app.applicationlayer import paginators
from datetime import datetime
from rest_framework.response import Response
from rest_framework import status, views
from rest_framework.decorators import action
from django.http import Http404
from django.db.models import Q
from app.applicationlayer.cms.utils_cr import (
number_generator, crhistory_save, entity_log_bulk
)
from django.forms.models import model_to_dict
from app.entities import enums, models
from app.applicationlayer.utils import log_save, CustomPagination
from app.applicationlayer.cms.template import serializers
def tmp_add_edit_delete(tmp_request_body,
queryset,
enum_type,
serializer_data,
partial,
self,
template_no):
# delete ids not in request body
request_ids = [i['id'] for i in tmp_request_body if "id" in i]
delete_query = queryset.objects.filter(
template_no=template_no
).exclude(
id__in=request_ids
)
if delete_query.count() > 0:
entity_log_bulk(
delete_query,
enum_type,
queryset
)
# update or create
for i in tmp_request_body:
if "id" in i:
tmp_instance = queryset.objects.get(
pk=i['id']
)
serializer = serializer_data(tmp_instance,
data=i,
partial=partial)
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(tmp_instance)
self.perform_update(serializer)
new_instance = serializer.data
log_save(
enums.LogEnum.UPDATE.value,
enum_type,
i['id'],
old_instance,
new_instance
)
else:
serializer = serializer_data(data=i)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
new_instance = serializer.data
log_save(
enums.LogEnum.ADD.value,
enum_type,
new_instance['id'],
'',
new_instance
)
return True
# Generated by Django 2.2 on 2019-09-24 12:06
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('entities', '0006_auto_20190920_1623'),
]
operations = [
migrations.RemoveField(
model_name='changerequesttemplateapprovers',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequesttemplateattachments',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequesttemplatedetails',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequesttemplateheader',
name='archived_at',
),
migrations.RemoveField(
model_name='changerequesttemplatestakeholders',
name='archived_at',
),
]
...@@ -504,10 +504,6 @@ class ChangeRequestTemplateHeader(BaseHeader): ...@@ -504,10 +504,6 @@ class ChangeRequestTemplateHeader(BaseHeader):
blank=True, blank=True,
null=True) null=True)
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta: class Meta:
db_table = 'change_request_template_headers' db_table = 'change_request_template_headers'
...@@ -522,10 +518,6 @@ class ChangeRequestTemplateHeader(BaseHeader): ...@@ -522,10 +518,6 @@ class ChangeRequestTemplateHeader(BaseHeader):
self.template_no = code self.template_no = code
self.save() self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
class ChangeRequestTemplateApprovers(BaseApprover): class ChangeRequestTemplateApprovers(BaseApprover):
code = models.CharField( code = models.CharField(
...@@ -536,9 +528,6 @@ class ChangeRequestTemplateApprovers(BaseApprover): ...@@ -536,9 +528,6 @@ class ChangeRequestTemplateApprovers(BaseApprover):
on_delete=models.DO_NOTHING, on_delete=models.DO_NOTHING,
to_field='template_no', to_field='template_no',
related_name='tmp_approvers') related_name='tmp_approvers')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta: class Meta:
db_table = 'change_request_template_approvers' db_table = 'change_request_template_approvers'
...@@ -555,9 +544,6 @@ class ChangeRequestTemplateApprovers(BaseApprover): ...@@ -555,9 +544,6 @@ class ChangeRequestTemplateApprovers(BaseApprover):
self.created = datetime.now() self.created = datetime.now()
self.save() self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
class ChangeRequestTemplateStakeHolders(BaseStakeholder): class ChangeRequestTemplateStakeHolders(BaseStakeholder):
code = models.CharField( code = models.CharField(
...@@ -568,9 +554,6 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder): ...@@ -568,9 +554,6 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
on_delete=models.DO_NOTHING, on_delete=models.DO_NOTHING,
to_field='template_no', to_field='template_no',
related_name='tmp_stakes') related_name='tmp_stakes')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta: class Meta:
db_table = 'change_request_template_stakeholders' db_table = 'change_request_template_stakeholders'
...@@ -587,10 +570,6 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder): ...@@ -587,10 +570,6 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
self.created = datetime.now() self.created = datetime.now()
self.save() self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
class ChangeRequestTemplateAttachments(BaseAttachment): class ChangeRequestTemplateAttachments(BaseAttachment):
code = models.CharField( code = models.CharField(
...@@ -601,9 +580,6 @@ class ChangeRequestTemplateAttachments(BaseAttachment): ...@@ -601,9 +580,6 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
on_delete=models.DO_NOTHING, on_delete=models.DO_NOTHING,
to_field='template_no', to_field='template_no',
related_name='tmp_attachments') related_name='tmp_attachments')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta: class Meta:
db_table = 'change_request_template_attachments' db_table = 'change_request_template_attachments'
...@@ -620,10 +596,6 @@ class ChangeRequestTemplateAttachments(BaseAttachment): ...@@ -620,10 +596,6 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
self.created = datetime.now() self.created = datetime.now()
self.save() self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
class ChangeRequestTemplateDetails(BaseDetails): class ChangeRequestTemplateDetails(BaseDetails):
code = models.CharField( code = models.CharField(
...@@ -634,9 +606,6 @@ class ChangeRequestTemplateDetails(BaseDetails): ...@@ -634,9 +606,6 @@ class ChangeRequestTemplateDetails(BaseDetails):
on_delete=models.DO_NOTHING, on_delete=models.DO_NOTHING,
to_field='template_no', to_field='template_no',
related_name='tmp_details') related_name='tmp_details')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta: class Meta:
db_table = 'change_request_template_details' db_table = 'change_request_template_details'
...@@ -653,10 +622,6 @@ class ChangeRequestTemplateDetails(BaseDetails): ...@@ -653,10 +622,6 @@ class ChangeRequestTemplateDetails(BaseDetails):
self.created = datetime.now() self.created = datetime.now()
self.save() self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
''' '''
***** *****
FORMS FORMS
......
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