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

Template Edit

parent b5cab699
......@@ -10,7 +10,7 @@ class ChangeRequestTemplateApproversSerializer(
class Meta:
model = models.ChangeRequestTemplateApprovers
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
read_only_fields = ['created', 'code']
class ChangeRequestTemplateStakeHoldersSerializer(
......@@ -19,7 +19,7 @@ class ChangeRequestTemplateStakeHoldersSerializer(
class Meta:
model = models.ChangeRequestTemplateStakeHolders
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
read_only_fields = ['created', 'code']
class ChangeRequestTemplateAttachmentsSerializer(
......@@ -28,7 +28,7 @@ class ChangeRequestTemplateAttachmentsSerializer(
class Meta:
model = models.ChangeRequestTemplateAttachments
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
read_only_fields = ['created', 'code']
class ChangeRequestTemplateDetailsSerializer(
......@@ -37,20 +37,20 @@ class ChangeRequestTemplateDetailsSerializer(
class Meta:
model = models.ChangeRequestTemplateDetails
fields = '__all__'
read_only_fields = ['created', 'archived_at', 'code']
read_only_fields = ['created', 'code']
# comment
class ChangeRequestTemplatesSerializer(
WritableNestedModelSerializer
serializers.ModelSerializer
):
tmp_approvers = ChangeRequestTemplateApproversSerializer(
many=True, required=False)
many=True, read_only=True)
tmp_stakes = ChangeRequestTemplateStakeHoldersSerializer(
many=True, required=False)
many=True, read_only=True)
tmp_attachments = ChangeRequestTemplateAttachmentsSerializer(
many=True, required=False)
many=True, read_only=True)
tmp_details = ChangeRequestTemplateDetailsSerializer(
many=True, required=False)
many=True, read_only=True)
class Meta:
model = models.ChangeRequestTemplateHeader
......@@ -63,4 +63,4 @@ class ChangeRequestTemplatesSerializer(
'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
read_only_fields = ['created', 'template_no']
\ No newline at end of file
......@@ -20,7 +20,9 @@ import requests
from django.conf import settings
from rest_framework.exceptions import ValidationError
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.applicationlayer.cms.utils_cr import (
number_generator, crhistory_save, entity_log_bulk
......@@ -36,6 +38,9 @@ from django.db.models import Q
from app.applicationlayer.management.account.serializer import ChangeRequestList
from app.applicationlayer.utils import log_save, CustomPagination
from rest_framework.exceptions import ParseError
from app.businesslayer.changerequest.change_request_template import (
tmp_add_edit_delete
)
class UserList(APIView):
......@@ -145,7 +150,6 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
# @transaction.atomic()
def destroy(self, request, *args, **kwargs):
# try:
template_no = self.kwargs['template_no']
enum_approver = enums.LogEntitiesEnum.ChangeRequestTemplateApprovers.value
......@@ -170,7 +174,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
if stake.count() > 0:
entity_log_bulk(
approver, enum_stake,
stake, enum_stake,
models.ChangeRequestTemplateStakeHolders
)
......@@ -180,7 +184,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
if attachment.count() > 0:
entity_log_bulk(
approver, enum_attach,
attachment, enum_attach,
models.ChangeRequestTemplateAttachments
)
......@@ -190,18 +194,20 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
if details.count() > 0:
entity_log_bulk(
approver, enum_detail,
details, enum_detail,
models.ChangeRequestTemplateDetails
)
header = models.ChangeRequestTemplateHeader.objects.filter(
template_no=template_no
)
if header.count() > 0:
entity_log_bulk(
approver, enum_header,
header, enum_header,
models.ChangeRequestTemplateHeader
)
return Response({"message": "Deleted"}, status=status.HTTP_200_OK)
# except Exception as e:
# return Response(e,
......@@ -215,74 +221,73 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
template_no = kwargs['template_no']
body_data = request.data
tmp_no_exists = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no)
if not tmp_no_exists:
serializer = self.get_serializer(instance, data=request.data, partial=partial)
serializer.is_valid(raise_exception=True)
serializer = self.get_serializer(instance,
data=request.data,
partial=partial)
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(instance)
self.perform_update(serializer)
new_instance = serializer.data
# print(new_instance)
crhistory_save(
log_save(
enums.LogEnum.UPDATE.value,
enums.CREntitiesEnum.CR_TMP_HEADER.value,
new_instance['template_no'],
enums.LogEntitiesEnum.ChangeRequestTemplateHeader.value,
old_instance['id'],
old_instance,
new_instance
)
return Response(serializer.data)
return Response(
"Unable to edit due to existing transaction",
status=status.HTTP_400_BAD_REQUEST
tmp_add_edit_delete(
body_data['tmp_approvers'],
models.ChangeRequestTemplateApprovers,
enums.LogEntitiesEnum.ChangeRequestTemplateApprovers.value,
serializers.ChangeRequestTemplateApproversSerializer,
partial,
self,
template_no
)
@action(
methods=['PATCH'], detail=True,
url_path='archived', url_name='archived'
tmp_add_edit_delete(
body_data['tmp_stakes'],
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(
"Template successfully archived",
status=status.HTTP_200_OK
tmp_add_edit_delete(
body_data['tmp_details'],
models.ChangeRequestTemplateDetails,
enums.LogEntitiesEnum.ChangeRequestTemplateDetails.value,
serializers.ChangeRequestTemplateDetailsSerializer,
partial,
self,
template_no
)
return Response(serializer.data)
return Response(
"Unable to archive due to existing transaction",
"Unable to edit due to existing transaction",
status=status.HTTP_400_BAD_REQUEST
)
......@@ -413,17 +418,9 @@ class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
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()
......@@ -432,17 +429,11 @@ class ChangeRequestTemplateAttachmentsViewset(meviewsets.ModelViewSet):
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):
......@@ -452,16 +443,9 @@ class ChangeRequestTemplateStakeHoldersViewset(meviewsets.ModelViewSet):
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):
......@@ -471,12 +455,5 @@ class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet):
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
......@@ -22,7 +22,7 @@ CR_FRONT_LINK = settings.CR_FRONT_LINK
def entity_log_bulk(queryset, entity, tbl):
try:
print(entity)
# print(entity)
for data in queryset:
test = model_to_dict(data)
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):
blank=True,
null=True)
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
db_table = 'change_request_template_headers'
......@@ -522,10 +518,6 @@ class ChangeRequestTemplateHeader(BaseHeader):
self.template_no = code
self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
class ChangeRequestTemplateApprovers(BaseApprover):
code = models.CharField(
......@@ -536,9 +528,6 @@ class ChangeRequestTemplateApprovers(BaseApprover):
on_delete=models.DO_NOTHING,
to_field='template_no',
related_name='tmp_approvers')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
db_table = 'change_request_template_approvers'
......@@ -555,9 +544,6 @@ class ChangeRequestTemplateApprovers(BaseApprover):
self.created = datetime.now()
self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
class ChangeRequestTemplateStakeHolders(BaseStakeholder):
code = models.CharField(
......@@ -568,9 +554,6 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
on_delete=models.DO_NOTHING,
to_field='template_no',
related_name='tmp_stakes')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
db_table = 'change_request_template_stakeholders'
......@@ -587,10 +570,6 @@ class ChangeRequestTemplateStakeHolders(BaseStakeholder):
self.created = datetime.now()
self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
class ChangeRequestTemplateAttachments(BaseAttachment):
code = models.CharField(
......@@ -601,9 +580,6 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
on_delete=models.DO_NOTHING,
to_field='template_no',
related_name='tmp_attachments')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
db_table = 'change_request_template_attachments'
......@@ -620,10 +596,6 @@ class ChangeRequestTemplateAttachments(BaseAttachment):
self.created = datetime.now()
self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
class ChangeRequestTemplateDetails(BaseDetails):
code = models.CharField(
......@@ -634,9 +606,6 @@ class ChangeRequestTemplateDetails(BaseDetails):
on_delete=models.DO_NOTHING,
to_field='template_no',
related_name='tmp_details')
archived_at = models.DateTimeField(
blank=True,
null=True)
class Meta:
db_table = 'change_request_template_details'
......@@ -653,10 +622,6 @@ class ChangeRequestTemplateDetails(BaseDetails):
self.created = datetime.now()
self.save()
def delete(self):
self.archived_at = datetime.utcnow
self.save()
'''
*****
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