Commit 328a825e authored by John Red Medrano's avatar John Red Medrano

fixing download attachment

parents e79df9b0 b6cb1bd6
...@@ -81,12 +81,13 @@ class ChangeRequestFormHeaderSerializer( ...@@ -81,12 +81,13 @@ class ChangeRequestFormHeaderSerializer(
user = self.context['request'].user user = self.context['request'].user
id_number = user.code id_number = user.code
current_level = models.ChangeRequestFormApprovers.objects.filter( current_level = models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=ret['form_code']) Q(form_code=ret['form_code']) &
(Q(action='') | Q(action=None)) (Q(action='') | Q(action=None))
).order_by('level') ).order_by('level')
if current_level.first()['user'] == id_number: if current_level[0].user.code == id_number:
if instance.status.lower() == 'rejected': if instance.status.lower() == 'rejected':
approver = 'No' approver = 'No'
elif instance.status.lower() == 'cancelled': elif instance.status.lower() == 'cancelled':
...@@ -98,9 +99,17 @@ class ChangeRequestFormHeaderSerializer( ...@@ -98,9 +99,17 @@ class ChangeRequestFormHeaderSerializer(
else: else:
approver = 'No' approver = 'No'
ret['action'] = approver ret['action'] = approver
ret['company'] = instance.requested_to_company.name
ret['department'] = instance.requested_to_department.name
ret['requested_by'] = instance.requested_by_user.name
return ret return ret
except Exception as e: except Exception as e:
ret['action'] = "No" ret['action'] = "No"
ret['company'] = "None"
ret['department'] = "None"
ret['requested_by'] = "None"
return ret return ret
class Meta: class Meta:
......
...@@ -28,12 +28,15 @@ from app.applicationlayer.cms.utils_cr import (number_generator, ...@@ -28,12 +28,15 @@ from app.applicationlayer.cms.utils_cr import (number_generator,
crhistory_save, crhistory_save,
send_mail_vendor, send_mail_vendor,
get_max_batchno, get_max_batchno,
generate_template_id) generate_template_id,
crhistory_create_save)
from app.entities import enums from app.entities import enums
from django.forms.models import model_to_dict from django.forms.models import model_to_dict
import json import json
from django.shortcuts import get_object_or_404 from django.shortcuts import get_object_or_404
from django.db.models import Min from django.db.models import Min
from app.applicationlayer.utils import (CustomPagination,
status_message_response)
APPROVER_MESSAGE = settings.APPROVER_MESSAGE APPROVER_MESSAGE = settings.APPROVER_MESSAGE
...@@ -51,7 +54,8 @@ VENDOR_REJECT_MESSAGE = settings.VENDOR_REJECT_MESSAGE ...@@ -51,7 +54,8 @@ VENDOR_REJECT_MESSAGE = settings.VENDOR_REJECT_MESSAGE
class ChangeRequestFormsViewset(meviewsets.ModelViewSet): class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
serializer_class = serializers.ChangeRequestFormHeaderSerializer serializer_class = serializers.ChangeRequestFormHeaderSerializer
pagination_class = paginators.SimplePageNumberPagination # pagination_class = paginators.SimplePageNumberPagination
pagination_class = CustomPagination
queryset = models.ChangeRequestFormHeader.objects.all() queryset = models.ChangeRequestFormHeader.objects.all()
lookup_field = 'form_code' lookup_field = 'form_code'
...@@ -83,7 +87,28 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet): ...@@ -83,7 +87,28 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
self.queryset = self.queryset.order_by('-created') self.queryset = self.queryset.order_by('-created')
self.queryset = QuerySetHelper.Sort(self) self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestFormsViewset, self).list(request) page = self.paginate_queryset(self.queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
message = status_message_response(
200,
'success',
'List of Change Request Form 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
)
# return super(ChangeRequestFormsViewset, self).list(request)
@action(detail=False, @action(detail=False,
methods=['get'], methods=['get'],
...@@ -719,14 +744,16 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet): ...@@ -719,14 +744,16 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
# generate batchno history # generate batchno history
batchno = get_max_batchno("batch") batchno = get_max_batchno("batch")
print(instance) # generate requested template id
# generate_template_id(
# template_no = serializer.data['template_no'] # CR_Prefix,
# CR_Prefix = serializer.data['requested_to_template_id'] # frm_id,
# frm_id = serializer.data['form_code'] # template_no,
# batchno,
# generate requested_to_template_id # enums.CREnum.CREATE.value,
# generate_template_id(CR_Prefix, form_code, template_no) # enums.CREnum.ADD.value,
# serializer.data
# )
data_update = { data_update = {
"status": 'Pending', "status": 'Pending',
...@@ -832,10 +859,10 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet): ...@@ -832,10 +859,10 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
self.queryset = QuerySetHelper.Sort(self) self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestFormApproversViewset, self).list(request) return super(ChangeRequestFormApproversViewset, self).list(request)
def retrieve(self, request, *args, **kwargs): # def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(archived_at=None).first() # instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance) # serializer = self.get_serializer(instance)
return Response(serializer.data) # return Response(serializer.data)
class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet): class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
...@@ -844,7 +871,7 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet): ...@@ -844,7 +871,7 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
pagination_class = paginators.SimplePageNumberPagination pagination_class = paginators.SimplePageNumberPagination
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(archived_at=None) # self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self) self.queryset = QuerySetHelper.Sort(self)
self.queryset = QuerySetHelper.Filter(self) self.queryset = QuerySetHelper.Filter(self)
return super( return super(
...@@ -884,10 +911,10 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet): ...@@ -884,10 +911,10 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
# headers=headers # headers=headers
# ) # )
def retrieve(self, request, *args, **kwargs): # def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(archived_at=None).first() # instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance) # serializer = self.get_serializer(instance)
return Response(serializer.data) # return Response(serializer.data)
class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet): class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
...@@ -897,7 +924,7 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet): ...@@ -897,7 +924,7 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
pagination_class = paginators.SimplePageNumberPagination pagination_class = paginators.SimplePageNumberPagination
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(archived_at=None) # self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self) self.queryset = QuerySetHelper.Sort(self)
self.queryset = QuerySetHelper.Filter(self) self.queryset = QuerySetHelper.Filter(self)
return super(ChangeRequestFormStakeHoldersViewset, self).list(request) return super(ChangeRequestFormStakeHoldersViewset, self).list(request)
...@@ -923,10 +950,10 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet): ...@@ -923,10 +950,10 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
# headers=headers # headers=headers
# ) # )
def retrieve(self, request, *args, **kwargs): # def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(archived_at=None).first() # instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance) # serializer = self.get_serializer(instance)
return Response(serializer.data) # return Response(serializer.data)
class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet): class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
...@@ -936,7 +963,7 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet): ...@@ -936,7 +963,7 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
pagination_class = paginators.SimplePageNumberPagination pagination_class = paginators.SimplePageNumberPagination
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(archived_at=None) # self.queryset = self.queryset.filter(archived_at=None)
self.queryset = QuerySetHelper.Sort(self) self.queryset = QuerySetHelper.Sort(self)
self.queryset = QuerySetHelper.Filter(self) self.queryset = QuerySetHelper.Filter(self)
return super(ChangeRequestFormDetailsViewset, self).list(request) return super(ChangeRequestFormDetailsViewset, self).list(request)
...@@ -962,10 +989,10 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet): ...@@ -962,10 +989,10 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
# headers=headers # headers=headers
# ) # )
def retrieve(self, request, *args, **kwargs): # def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(archived_at=None).first() # instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance) # serializer = self.get_serializer(instance)
return Response(serializer.data) # return Response(serializer.data)
class ChangeRequestFormPost(APIView): class ChangeRequestFormPost(APIView):
...@@ -1007,13 +1034,24 @@ class ChangeRequestFormPost(APIView): ...@@ -1007,13 +1034,24 @@ class ChangeRequestFormPost(APIView):
if serializer.is_valid(raise_exception=True): if serializer.is_valid(raise_exception=True):
serializer.save() serializer.save()
if serializer.data['status'].lower() == 'pending':
template_no = serializer.data['template_no'] template_no = serializer.data['template_no']
CR_Prefix = serializer.data['requested_to_template_id'] CR_Prefix = serializer.data['requested_to_template_id']
frm_id = serializer.data['form_code'] frm_id = serializer.data['form_code']
# generate batchno history
batchno = get_max_batchno("batch")
# generate requested template id # generate requested template id
generate_template_id(CR_Prefix, frm_id, template_no) generate_template_id(
CR_Prefix,
frm_id,
template_no,
batchno,
enums.CREnum.CREATE.value,
enums.CREnum.ADD.value,
serializer.data
)
# create template approvers # create template approvers
frm_approvers = form_header['frm_approvers'] frm_approvers = form_header['frm_approvers']
......
...@@ -6,6 +6,24 @@ from django.forms.models import model_to_dict ...@@ -6,6 +6,24 @@ from django.forms.models import model_to_dict
class ChangeRequestTemplateAttachmentsSerializer( class ChangeRequestTemplateAttachmentsSerializer(
serializers.ModelSerializer serializers.ModelSerializer
): ):
def to_representation(self, instance):
try:
ret = super().to_representation(instance)
user_object = {
"id": instance.uploaded_by.id,
"name": instance.uploaded_by.name,
"username": instance.uploaded_by.username,
"code": instance.uploaded_by.code,
"email": instance.uploaded_by.email,
"contact_no": instance.uploaded_by.contact_no
}
ret['uploaded_by'] = user_object
return ret
except Exception as e:
ret['uploaded_by'] = "none"
return ret
class Meta: class Meta:
model = models.ChangeRequestTemplateAttachments model = models.ChangeRequestTemplateAttachments
fields = '__all__' fields = '__all__'
......
...@@ -15,6 +15,25 @@ from app.applicationlayer.cms.template.stakeholder.serializers import ChangeRequ ...@@ -15,6 +15,25 @@ from app.applicationlayer.cms.template.stakeholder.serializers import ChangeRequ
class ChangeRequestTemplateAttachmentsSerializer( class ChangeRequestTemplateAttachmentsSerializer(
serializers.ModelSerializer serializers.ModelSerializer
): ):
def to_representation(self, instance):
try:
ret = super().to_representation(instance)
user_object = {
"id": instance.uploaded_by.id,
"name": instance.uploaded_by.name,
"username": instance.uploaded_by.username,
"code": instance.uploaded_by.code,
"email": instance.uploaded_by.email,
"contact_no": instance.uploaded_by.contact_no
}
ret['uploaded_by'] = user_object
ret['file_upload'] = instance.file_upload.url.url
return ret
except Exception as e:
ret['uploaded_by'] = "none"
return ret
class Meta: class Meta:
model = models.ChangeRequestTemplateAttachments model = models.ChangeRequestTemplateAttachments
fields = '__all__' fields = '__all__'
......
...@@ -251,6 +251,7 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet): ...@@ -251,6 +251,7 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet):
"Unable to edit due to existing transaction", "Unable to edit due to existing transaction",
status=status.HTTP_400_BAD_REQUEST status=status.HTTP_400_BAD_REQUEST
) )
#try 1
class ChangeRequestTemplatePost(APIView): class ChangeRequestTemplatePost(APIView):
......
...@@ -473,13 +473,60 @@ def crhistory_log_bulk_delete(queryset, entity, tbl, form_code, ...@@ -473,13 +473,60 @@ def crhistory_log_bulk_delete(queryset, entity, tbl, form_code,
raise APIException(detail=exc) raise APIException(detail=exc)
def generate_template_id(prefix, form_code, template_no): def generate_template_id(prefix,
print("hello") form_code,
tmp_counter = models.ChangeRequestFormHeader.objects.filter( template_no,
batchno,
main_action,
action,
serializer_data):
try:
max_id = models.ChangeRequestHistory.objects.filter(
template_no=template_no).count() template_no=template_no).count()
generate_tmp = number_generator(prefix, tmp_counter) if max_id:
max_batch = max_id.batch_no.split("-")
max_batch = int(max_batch[2].lstrip("0")) + 1
requested_to_template_id = number_generator(prefix, max_batch)
else:
requested_to_template_id = number_generator(prefix, 1)
except:
requested_to_template_id = number_generator(prefix, 1)
models.ChangeRequestFormHeader.objects.filter( models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).update( form_code=form_code).update(
requested_to_template_id=generate_tmp) requested_to_template_id=requested_to_template_id)
\ No newline at end of file
# save history in form header
crhistory_create_save(
batchno,
main_action,
action,
enums.CREntitiesEnum.CR_FRM_HEADER.value,
form_code,
serializer_data,
requested_to_template_id,
template_no
)
return True
def crhistory_create_save(batch_no, main_action,
action, entity, form_code,
toValue, requested_to_template_id, template_no):
models.ChangeRequestHistory.objects.create(
batch_no=batch_no,
main_action=main_action,
action=action,
entity=entity,
form_code=form_code,
fromValue='',
toValue=toValue,
requested_to_template_id=requested_to_template_id,
template_no=template_no
)
return True
\ No newline at end of file
...@@ -288,8 +288,13 @@ def form_add_edit_delete(form_request_body, ...@@ -288,8 +288,13 @@ def form_add_edit_delete(form_request_body,
pk=i['id'] pk=i['id']
) )
frm_code = {
"form_code": form_code
}
data = {**i, **frm_code}
serializer = serializer_data(frm_instance, serializer = serializer_data(frm_instance,
data=i, data=data,
partial=partial) partial=partial)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
...@@ -309,7 +314,11 @@ def form_add_edit_delete(form_request_body, ...@@ -309,7 +314,11 @@ def form_add_edit_delete(form_request_body,
) )
else: else:
serializer = serializer_data(data=i) frm_code = {
"form_code": form_code
}
data = {**i, **frm_code}
serializer = serializer_data(data=data)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
self.perform_create(serializer) self.perform_create(serializer)
......
...@@ -51,9 +51,13 @@ def tmp_add_edit_delete(tmp_request_body, ...@@ -51,9 +51,13 @@ def tmp_add_edit_delete(tmp_request_body,
tmp_instance = queryset.objects.get( tmp_instance = queryset.objects.get(
pk=i['id'] pk=i['id']
) )
tmp_code = {
"template_no": template_no
}
data = {**i, **tmp_code}
serializer = serializer_data(tmp_instance, serializer = serializer_data(tmp_instance,
data=i, data=data,
partial=partial) partial=partial)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
...@@ -70,7 +74,11 @@ def tmp_add_edit_delete(tmp_request_body, ...@@ -70,7 +74,11 @@ def tmp_add_edit_delete(tmp_request_body,
new_instance new_instance
) )
else: else:
serializer = serializer_data(data=i) tmp_code = {
"template_no": template_no
}
data = {**i, **tmp_code}
serializer = serializer_data(data=data)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
self.perform_create(serializer) self.perform_create(serializer)
......
...@@ -104,6 +104,7 @@ class CREnum(Enum): ...@@ -104,6 +104,7 @@ class CREnum(Enum):
ACKNOWLEDGED = "ACKNOWLEDGED" ACKNOWLEDGED = "ACKNOWLEDGED"
REJECTED = "REJECTED" REJECTED = "REJECTED"
ACTION = "ACTION" ACTION = "ACTION"
CREATE = "CREATE"
class CREntitiesEnum(Enum): class CREntitiesEnum(Enum):
......
# Generated by Django 2.2 on 2019-09-27 14:52
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='changerequesthistory',
name='requested_to_template_id',
field=models.CharField(blank=True, max_length=255, null=True),
),
]
# Generated by Django 2.2 on 2019-09-27 16:01
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0002_changerequesthistory_requested_to_template_id'),
]
operations = [
migrations.AddField(
model_name='changerequesthistory',
name='template_no',
field=models.CharField(blank=True, max_length=255, null=True),
),
]
...@@ -900,6 +900,18 @@ class ChangeRequestHistory(AuditClass): ...@@ -900,6 +900,18 @@ class ChangeRequestHistory(AuditClass):
null=True) null=True)
fromValue = models.TextField(blank=True, null=True) fromValue = models.TextField(blank=True, null=True)
toValue = models.TextField(blank=True, null=True) toValue = models.TextField(blank=True, null=True)
requested_to_template_id = models.CharField(
max_length=255,
blank=True,
null=True)
requested_to_template_id = models.CharField(
max_length=255,
blank=True,
null=True)
template_no = models.CharField(
max_length=255,
blank=True,
null=True)
def __str__(self): def __str__(self):
return self.entity return self.entity
......
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