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

fixing download attachment

parents e79df9b0 b6cb1bd6
......@@ -74,19 +74,20 @@ class ChangeRequestFormHeaderSerializer(
many=True, read_only=True)
frm_details = ChangeRequestFormDetailsSerializer(
many=True, read_only=True)
def to_representation(self, instance):
ret = super().to_representation(instance)
try:
user = self.context['request'].user
id_number = user.code
current_level = models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=ret['form_code'])
Q(form_code=ret['form_code']) &
(Q(action='') | Q(action=None))
).order_by('level')
if current_level.first()['user'] == id_number:
if current_level[0].user.code == id_number:
if instance.status.lower() == 'rejected':
approver = 'No'
elif instance.status.lower() == 'cancelled':
......@@ -98,9 +99,17 @@ class ChangeRequestFormHeaderSerializer(
else:
approver = 'No'
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
except Exception as e:
ret['action'] = "No"
ret['company'] = "None"
ret['department'] = "None"
ret['requested_by'] = "None"
return ret
class Meta:
......
......@@ -28,12 +28,15 @@ from app.applicationlayer.cms.utils_cr import (number_generator,
crhistory_save,
send_mail_vendor,
get_max_batchno,
generate_template_id)
generate_template_id,
crhistory_create_save)
from app.entities import enums
from django.forms.models import model_to_dict
import json
from django.shortcuts import get_object_or_404
from django.db.models import Min
from app.applicationlayer.utils import (CustomPagination,
status_message_response)
APPROVER_MESSAGE = settings.APPROVER_MESSAGE
......@@ -51,7 +54,8 @@ VENDOR_REJECT_MESSAGE = settings.VENDOR_REJECT_MESSAGE
class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
serializer_class = serializers.ChangeRequestFormHeaderSerializer
pagination_class = paginators.SimplePageNumberPagination
# pagination_class = paginators.SimplePageNumberPagination
pagination_class = CustomPagination
queryset = models.ChangeRequestFormHeader.objects.all()
lookup_field = 'form_code'
......@@ -82,8 +86,29 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
self.queryset = self.queryset.order_by('-created')
self.queryset = QuerySetHelper.Sort(self)
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)
# return super(ChangeRequestFormsViewset, self).list(request)
@action(detail=False,
methods=['get'],
......@@ -718,15 +743,17 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
# generate batchno history
batchno = get_max_batchno("batch")
print(instance)
# template_no = serializer.data['template_no']
# CR_Prefix = serializer.data['requested_to_template_id']
# frm_id = serializer.data['form_code']
# generate requested_to_template_id
# generate_template_id(CR_Prefix, form_code, template_no)
# generate requested template id
# generate_template_id(
# CR_Prefix,
# frm_id,
# template_no,
# batchno,
# enums.CREnum.CREATE.value,
# enums.CREnum.ADD.value,
# serializer.data
# )
data_update = {
"status": 'Pending',
......@@ -827,15 +854,15 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
serializer_class = serializers.ChangeRequestFormApproversSerializer
pagination_class = paginators.SimplePageNumberPagination
lookup_field = 'code'
def list(self, request, *args, **kwargs):
self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestFormApproversViewset, 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)
# def retrieve(self, request, *args, **kwargs):
# instance = self.queryset.filter(archived_at=None).first()
# serializer = self.get_serializer(instance)
# return Response(serializer.data)
class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
......@@ -844,7 +871,7 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
pagination_class = paginators.SimplePageNumberPagination
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.Filter(self)
return super(
......@@ -884,10 +911,10 @@ class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
# headers=headers
# )
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
# def retrieve(self, request, *args, **kwargs):
# instance = self.queryset.filter(archived_at=None).first()
# serializer = self.get_serializer(instance)
# return Response(serializer.data)
class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
......@@ -897,7 +924,7 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
pagination_class = paginators.SimplePageNumberPagination
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.Filter(self)
return super(ChangeRequestFormStakeHoldersViewset, self).list(request)
......@@ -923,10 +950,10 @@ class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
# headers=headers
# )
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
# def retrieve(self, request, *args, **kwargs):
# instance = self.queryset.filter(archived_at=None).first()
# serializer = self.get_serializer(instance)
# return Response(serializer.data)
class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
......@@ -936,7 +963,7 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
pagination_class = paginators.SimplePageNumberPagination
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.Filter(self)
return super(ChangeRequestFormDetailsViewset, self).list(request)
......@@ -962,10 +989,10 @@ class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
# headers=headers
# )
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(archived_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
# def retrieve(self, request, *args, **kwargs):
# instance = self.queryset.filter(archived_at=None).first()
# serializer = self.get_serializer(instance)
# return Response(serializer.data)
class ChangeRequestFormPost(APIView):
......@@ -1007,14 +1034,25 @@ class ChangeRequestFormPost(APIView):
if serializer.is_valid(raise_exception=True):
serializer.save()
if serializer.data['status'].lower() == 'pending':
template_no = serializer.data['template_no']
CR_Prefix = serializer.data['requested_to_template_id']
frm_id = serializer.data['form_code']
# generate batchno history
batchno = get_max_batchno("batch")
# generate requested template id
generate_template_id(
CR_Prefix,
frm_id,
template_no,
batchno,
enums.CREnum.CREATE.value,
enums.CREnum.ADD.value,
serializer.data
)
template_no = serializer.data['template_no']
CR_Prefix = serializer.data['requested_to_template_id']
frm_id = serializer.data['form_code']
# generate requested template id
generate_template_id(CR_Prefix, frm_id, template_no)
# create template approvers
frm_approvers = form_header['frm_approvers']
counter = 0
......
......@@ -6,6 +6,24 @@ from django.forms.models import model_to_dict
class ChangeRequestTemplateAttachmentsSerializer(
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:
model = models.ChangeRequestTemplateAttachments
fields = '__all__'
......
......@@ -15,6 +15,25 @@ from app.applicationlayer.cms.template.stakeholder.serializers import ChangeRequ
class ChangeRequestTemplateAttachmentsSerializer(
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:
model = models.ChangeRequestTemplateAttachments
fields = '__all__'
......
......@@ -251,6 +251,7 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet):
"Unable to edit due to existing transaction",
status=status.HTTP_400_BAD_REQUEST
)
#try 1
class ChangeRequestTemplatePost(APIView):
......
......@@ -473,13 +473,60 @@ def crhistory_log_bulk_delete(queryset, entity, tbl, form_code,
raise APIException(detail=exc)
def generate_template_id(prefix, form_code, template_no):
print("hello")
tmp_counter = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no).count()
def generate_template_id(prefix,
form_code,
template_no,
batchno,
main_action,
action,
serializer_data):
generate_tmp = number_generator(prefix, tmp_counter)
try:
max_id = models.ChangeRequestHistory.objects.filter(
template_no=template_no).count()
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(
form_code=form_code).update(
requested_to_template_id=generate_tmp)
\ No newline at end of file
requested_to_template_id=requested_to_template_id)
# 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,
pk=i['id']
)
frm_code = {
"form_code": form_code
}
data = {**i, **frm_code}
serializer = serializer_data(frm_instance,
data=i,
data=data,
partial=partial)
serializer.is_valid(raise_exception=True)
......@@ -309,7 +314,11 @@ def form_add_edit_delete(form_request_body,
)
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)
self.perform_create(serializer)
......
......@@ -51,9 +51,13 @@ def tmp_add_edit_delete(tmp_request_body,
tmp_instance = queryset.objects.get(
pk=i['id']
)
tmp_code = {
"template_no": template_no
}
data = {**i, **tmp_code}
serializer = serializer_data(tmp_instance,
data=i,
data=data,
partial=partial)
serializer.is_valid(raise_exception=True)
......@@ -70,7 +74,11 @@ def tmp_add_edit_delete(tmp_request_body,
new_instance
)
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)
self.perform_create(serializer)
......
......@@ -104,6 +104,7 @@ class CREnum(Enum):
ACKNOWLEDGED = "ACKNOWLEDGED"
REJECTED = "REJECTED"
ACTION = "ACTION"
CREATE = "CREATE"
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),
),
]
......@@ -513,7 +513,7 @@ class ChangeRequestTemplateHeader(BaseHeader):
requested_to_template_id = models.CharField(
max_length=255,
unique=True)
created_by_user = models.ForeignKey(
User,
on_delete=models.DO_NOTHING,
......@@ -900,6 +900,18 @@ class ChangeRequestHistory(AuditClass):
null=True)
fromValue = 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):
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