Commit d365f4ce authored by Gladys Forte's avatar Gladys Forte

update 2

parent b24114d4
......@@ -22,6 +22,7 @@ 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.management.changerequest.utils_cr import number_generator
APPROVER_MESSAGE = settings.APPROVER_MESSAGE
......@@ -43,13 +44,9 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(
deleted_at=None
)
self.queryset = self.queryset.order_by('-created')
self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestTemplatesViewset, self).list(request)
def retrieve(self, request, *args, **kwargs):
......@@ -328,10 +325,9 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
url_path='dashboard',
name="Dashboard Summary")
def dashboard_view(self, request):
id_number = self.request.user
# id_number = 'Acct-20190813-0000138'
print(id_number)
self.queryset = change_request.list_by_user(id_number.code)
......@@ -395,7 +391,7 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
overdue = overdue_filtered.count()
message = {
'account_no': id_number,
'account_no': id_number.code,
'pending': pending,
'approved': approved,
'rejected': rejected,
......@@ -410,8 +406,7 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
'message': 'Dashboard Summary'
}
return Response(message, status=status.HTTP_200_OK)
return Response(message, status=status.HTTP_200_OK)
@action(detail=False,
methods=['get'],
......@@ -421,8 +416,6 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
id_number = self.request.user
# id_number = 'Acct-20190531-0000002'
self.queryset = change_request.list_by_user(id_number.code)
self.queryset = change_request.filter_status(
......@@ -455,8 +448,6 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
id_number = self.request.user
# id_number = 'Acct-20190531-0000002'
self.queryset = change_request.list_by_user(id_number.code)
self.queryset = change_request.filter_overdue(self.queryset)
......@@ -485,11 +476,9 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
id_number = self.request.user
# id_number = 'Acct-20190813-0000137'
self.queryset = change_request.list_by_user(id_number.code)
self.queryset = change_request.filter_awaiting(self.queryset, id_number)
self.queryset = change_request.filter_awaiting(self.queryset, id_number.code)
self.queryset = change_request.filter_base(
self.queryset,
......@@ -502,49 +491,16 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
request.query_params.get('form_type'),
)
self.queryset = self.queryset.filter(status__ne='Rejected')
self.queryset = self.queryset.filter(status__ne='Closed')
self.queryset = self.queryset.filter(status__ne='Cancelled')
self.queryset = self.queryset.filter(
~Q(status='Rejected') |
~Q(status='Closed') |
~Q(status='Cancelled'))
self.queryset = self.queryset.order_by('-created')
self.queryset = QuerySetHelper.Sort(self)
return super(ChangeRequestFormsViewset, self).list(request)
def destroy(self, request, *args, **kwargs):
# instance = self.get_object()
form_code = self.kwargs['form_code']
instance = models.ChangeRequestFormHeader.objects.filter(
form_code=form_code
).first()
if instance.status.lower() == 'draft':
models.ChangeRequestFormApprovers.objects(
form_code=form_code
).delete()
models.ChangeRequestFormDetails.objects(
form_code=form_code
).delete()
models.ChangeRequestFormStakeHolders.objects(
form_code=form_code
).delete()
models.ChangeRequestFormAttachments.objects(
form_code=form_code
).delete()
models.ChangeRequestFormTasks.objects(
form_code=form_code
).delete()
models.ChangeRequestFormHeader.objects(form_code=form_code).delete()
# self.perform_destroy(instance)
return Response({"message": "Change Request Deleted"}, status=status.HTTP_200_OK)
else:
message = {"message": "Cant delete this record, it has an ongoing tansaction"}
return Response(
message,
status=status.HTTP_204_NO_CONTENT
)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(
deleted_at=None,
......@@ -593,58 +549,58 @@ class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
pagination_class = paginators.SimplePageNumberPagination
def create(self, request, *args, **kwargs):
ObjectId = request.data.get('id')
sent = False
if 'form_status' in request.data:
# def create(self, request, *args, **kwargs):
# ObjectId = request.data.get('id')
# sent = False
# if 'form_status' in request.data:
# for email
if str(request.data['level']) == '1' and request.data['form_status'].lower() == 'pending':
user = request.data['user']
form_code = request.data['form_code']
delegation = request.data['delegation']
# initial_email(user, form_code, delegation)
# EMAIL CODE FOR APPROVER
notification_msg = APPROVER_MESSAGE.split(';')[0]
email_code = APPROVER_MESSAGE.split(';')[1]
next_appover_email(
user, form_code, delegation,
notification_msg, 'initial', email_code
)
request.data['date_sent'] = datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
request.data['created'] = datetime.now().strftime('%Y-%m-%d, %H:%M:%S') #correct
sent = True
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
# # for email
# if str(request.data['level']) == '1' and request.data['form_status'].lower() == 'pending':
# user = request.data['user']
# form_code = request.data['form_code']
# delegation = request.data['delegation']
# # initial_email(user, form_code, delegation)
# # EMAIL CODE FOR APPROVER
# notification_msg = APPROVER_MESSAGE.split(';')[0]
# email_code = APPROVER_MESSAGE.split(';')[1]
# next_appover_email(
# user, form_code, delegation,
# notification_msg, 'initial', email_code
# )
# request.data['date_sent'] = datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
# request.data['created'] = datetime.now().strftime('%Y-%m-%d, %H:%M:%S') #correct
# sent = True
# serializer = self.get_serializer(data=request.data)
# serializer.is_valid(raise_exception=True)
if ObjectId:
dbExisting = models.ChangeRequestFormApprovers.objects.filter(
id=ObjectId,
deleted_at=None).first()
if dbExisting:
dbExisting.deleted_at = datetime.now()
dbExisting.save()
# x = self.perform_create(serializer)
serializer.id = None
x = serializer.save()
if sent == True:
x.date_sent = datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
x.created = datetime.now().strftime('%Y-%m-%d, %H:%M:%S') #correct
x.save()
headers = self.get_success_headers(serializer.data)
return Response(
serializer.data,
status=status.HTTP_201_CREATED,
headers=headers
)
# if ObjectId:
# dbExisting = models.ChangeRequestFormApprovers.objects.filter(
# id=ObjectId,
# deleted_at=None).first()
# if dbExisting:
# dbExisting.deleted_at = datetime.now()
# dbExisting.save()
# # x = self.perform_create(serializer)
# serializer.id = None
# x = serializer.save()
# if sent == True:
# x.date_sent = datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
# x.created = datetime.now().strftime('%Y-%m-%d, %H:%M:%S') #correct
# x.save()
# headers = self.get_success_headers(serializer.data)
# return Response(
# serializer.data,
# status=status.HTTP_201_CREATED,
# headers=headers
# )
@action(
methods=['PATCH'], detail=False,
......@@ -1007,9 +963,22 @@ class ChangeRequestFormPost(APIView):
if serializer.is_valid(raise_exception=True):
serializer.save()
template_no = serializer.data['template_no']
tmp_counter = models.ChangeRequestFormHeader.objects.filter(
template_no=template_no).count()
tmp_counter = tmp_counter + 1
CR_Prefix = serializer.data['requested_to_template_id']
generate_tmp = number_generator(CR_Prefix, tmp_counter)
frm_id = serializer.data['form_code']
print(frm_id)
models.ChangeRequestFormHeader.objects.filter(
form_code=frm_id).update(
requested_to_template_id=generate_tmp)
# create template approvers
for frm_approver in frm_approvers:
......
......@@ -179,28 +179,12 @@ def filter_overdue(base_queryset):
overdue = []
for query in return_queryset:
try:
if query.requested_to_target_date:
requested_to_target_date = datetime.strptime(query.requested_to_target_date[:-1], "%Y-%m-%dT%H:%M:%S.%f")
if (requested_to_target_date < now):
overdue.append(query.form_code)
except ValueError:
#convert now
if query.requested_to_target_date:
requested_to_target_date = datetime.strptime(query.requested_to_target_date[:-1], "%Y-%m-%d %H:%M:%S")
if (requested_to_target_date < now):
overdue.append(query.form_code)
return_queryset = return_queryset.filter(
form_code__in=overdue
)
if (query.requested_to_target_date < now):
overdue.append(query.form_code)
return_queryset
return_queryset = return_queryset.filter(
form_code__in=overdue
)
except Exception as e:
pass
......@@ -236,19 +220,25 @@ def filter_awaiting(base_queryset,
try:
awaiting_included = []
for query in return_queryset:
current_level = models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=query.form_code) &
Q(deleted_at=None) &
(Q(action='') | Q(action=None))
).order_by('level')
if current_level:
first_level = current_level.first()
if current_level[0]['user'] == user_id_number:
awaiting_included.append(query.form_code)
first_user = models.ChangeRequestFormApprovers.objects.filter(
code=first_level).values('user')
print(first_user.user)
# if x == user_id_number:
# awaiting_included.append(query.form_code)
return_queryset = return_queryset.filter(form_code__in=awaiting_included)
......
# Generated by Django 2.2 on 2019-09-10 12:21
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0003_auto_20190910_0956'),
]
operations = [
migrations.AlterField(
model_name='changerequestformheader',
name='requested_to_template_id',
field=models.CharField(max_length=255),
),
]
......@@ -354,8 +354,7 @@ class BaseHeader(models.Model):
to_field='code')
requested_to_template_name = models.CharField(max_length=255)
requested_to_template_id = models.CharField(max_length=255, unique=True)
requested_to_objective = models.CharField(
max_length=255,
blank=True,
......@@ -487,6 +486,10 @@ class ChangeRequestTemplateHeader(BaseHeader):
template_no = models.CharField(
unique=True,
max_length=255)
requested_to_template_id = models.CharField(
max_length=255,
unique=True)
created_by_user = models.ForeignKey(
User,
......@@ -666,6 +669,8 @@ class ChangeRequestFormHeader(BaseHeader):
max_length=255,
null=True,
blank=True)
requested_to_template_id = models.CharField(
max_length=255)
class Meta:
db_table = 'change_request_form_headers'
......
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