Commit 7c882e2b authored by Gladys Forte's avatar Gladys Forte

Merge pull request #78 in RMS/api-main-service from gladys-dev2 to RMSv2

* commit 'b24114d4':
  migrations
  update on url
  update 1
  update
  cr form header
parents b086ebe7 b24114d4
...@@ -80,7 +80,7 @@ class CurrentUser(APIView): ...@@ -80,7 +80,7 @@ class CurrentUser(APIView):
serializer = UserManagementRetreiveSerializer serializer = UserManagementRetreiveSerializer
context = {"request": request} context = {"request": request}
serializer = serializer(request.user, context=context) serializer = serializer(request.user, context=context)
serializer.data['key'] = 'value' serializer.data['key'] = 'value'
serialized = serializer.data serialized = serializer.data
......
from app.entities import models from app.entities import models
from rest_framework import serializers from rest_framework import serializers
from django.db.models import Q from django.db.models import Q
from app.applicationlayer.management.changerequest.utils_cr import logged_user
class ChangeRequestTemplatesSerializer( class ChangeRequestTemplatesSerializer(
...@@ -51,33 +52,34 @@ class ChangeRequestTemplateDetailsSerializer( ...@@ -51,33 +52,34 @@ class ChangeRequestTemplateDetailsSerializer(
class ChangeRequestFormHeaderSerializer( class ChangeRequestFormHeaderSerializer(
serializers.ModelSerializer serializers.ModelSerializer
): ):
# def to_representation(self, instance): def to_representation(self, instance):
# ret = super().to_representation(instance) ret = super().to_representation(instance)
# try: try:
# # id_number = self.context.get('request').META.get('HTTP_ACCOUNT_NO') # id_number = self.context.get('request').META.get('user')
# id_number = "Acct-20190813-0000137"
# current_level = models.ChangeRequestFormApprovers.objects.filter(
# Q(form_code=ret['form_code']) &
# Q(deleted_at=None) &
# (Q(action='') | Q(action=None))
# ).order_by('level')
# if current_level.first()['user'] == id_number: id_number = "USER-20190909-0000005"
# if instance.status.lower() == 'rejected': current_level = models.ChangeRequestFormApprovers.objects.filter(
# approver = 'No' Q(form_code=ret['form_code']) &
# elif instance.status.lower() == 'cancelled': Q(deleted_at=None) &
# approver = 'No' (Q(action='') | Q(action=None))
# elif instance.status.lower() == 'closed': ).order_by('level')
# approver = 'No'
# else: if current_level.first()['user'] == id_number:
# approver = 'Yes' if instance.status.lower() == 'rejected':
# else: approver = 'No'
# approver = 'No' elif instance.status.lower() == 'cancelled':
# ret['action'] = approver approver = 'No'
# return ret elif instance.status.lower() == 'closed':
# except Exception as e: approver = 'No'
# ret['action'] = "No" else:
# return ret approver = 'Yes'
else:
approver = 'No'
ret['action'] = approver
return ret
except Exception as e:
ret['action'] = "No"
return ret
class Meta: class Meta:
model = models.ChangeRequestFormHeader model = models.ChangeRequestFormHeader
......
...@@ -6,7 +6,7 @@ import requests ...@@ -6,7 +6,7 @@ import requests
from app.entities import models from app.entities import models
from datetime import timedelta from datetime import timedelta
from django.db.models import Q from django.db.models import Q
from dateutil import parser # from dateutil import parser
# EMAIL = settings.EMAIL # EMAIL = settings.EMAIL
...@@ -116,7 +116,8 @@ def number_generator(prefix, id): ...@@ -116,7 +116,8 @@ def number_generator(prefix, id):
def logged_user(self): def logged_user(self):
return self.request.META.get('HTTP_ACCOUNT_NO') # return self.request.META.get('HTTP_ACCOUNT_NO')
return self.request.user
def receiver_body( def receiver_body(
......
...@@ -21,6 +21,17 @@ from django.conf import settings ...@@ -21,6 +21,17 @@ 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 from app.applicationlayer.utils import QuerySetHelper
from app.businesslayer.changerequest import change_request
APPROVER_MESSAGE = settings.APPROVER_MESSAGE
REQUESTOR_MESSAGE = settings.REQUESTOR_MESSAGE
REQUESTOR_REJECT_MESSAGE = settings.REQUESTOR_REJECT_MESSAGE
VENDOR_ACKNOWLEDGE_MESSAGE = settings.VENDOR_ACKNOWLEDGE_MESSAGE
REQUESTOR_ACKNOWLEDGE_MESSAGE = settings.REQUESTOR_ACKNOWLEDGE_MESSAGE
REQUESTOR_COMPLETION_MESSAGE = settings.REQUESTOR_COMPLETION_MESSAGE
VENDOR_ACCEPTANCE_MESSAGE = settings.VENDOR_ACCEPTANCE_MESSAGE
VENDOR_REJECT_MESSAGE = settings.VENDOR_REJECT_MESSAGE
class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet): class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
...@@ -46,7 +57,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet): ...@@ -46,7 +57,7 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
deleted_at=None, deleted_at=None,
template_no=str(self.kwargs.get('template_no')) template_no=str(self.kwargs.get('template_no'))
).first() ).first()
serializer = self.get_serializer(instance) serializer = self.get_serializer(instance)
return Response(serializer.data) return Response(serializer.data)
...@@ -102,6 +113,7 @@ class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet): ...@@ -102,6 +113,7 @@ class ChangeRequestTemplateApproversViewset(meviewsets.ModelViewSet):
class ChangeRequestTemplateAttachmentsViewset(meviewsets.ModelViewSet): class ChangeRequestTemplateAttachmentsViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestTemplateAttachments.objects.all() queryset = models.ChangeRequestTemplateAttachments.objects.all()
serializer_class = serializers.ChangeRequestTemplateAttachmentsSerializer serializer_class = serializers.ChangeRequestTemplateAttachmentsSerializer
pagination_class = paginators.SimplePageNumberPagination pagination_class = paginators.SimplePageNumberPagination
...@@ -140,6 +152,7 @@ class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet): ...@@ -140,6 +152,7 @@ class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestTemplateDetails.objects.all() queryset = models.ChangeRequestTemplateDetails.objects.all()
serializer_class = serializers.ChangeRequestTemplateDetailsSerializer serializer_class = serializers.ChangeRequestTemplateDetailsSerializer
pagination_class = paginators.SimplePageNumberPagination pagination_class = paginators.SimplePageNumberPagination
lookup_field = "code"
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None) self.queryset = self.queryset.filter(deleted_at=None)
...@@ -151,7 +164,7 @@ class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet): ...@@ -151,7 +164,7 @@ class ChangeRequestTemplateDetailsViewset(meviewsets.ModelViewSet):
instance = self.queryset.filter(deleted_at=None).first() instance = self.queryset.filter(deleted_at=None).first()
serializer = self.get_serializer(instance) serializer = self.get_serializer(instance)
return Response(serializer.data) return Response(serializer.data)
class ChangeRequestTemplatePost(APIView): class ChangeRequestTemplatePost(APIView):
...@@ -271,20 +284,20 @@ class ChangeRequestTemplatePost(APIView): ...@@ -271,20 +284,20 @@ class ChangeRequestTemplatePost(APIView):
status=status.HTTP_500_INTERNAL_SERVER_ERROR) status=status.HTTP_500_INTERNAL_SERVER_ERROR)
# Change Request Form Views
class ChangeRequestFormsViewset(meviewsets.ModelViewSet): class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
lookup_field = 'form_code'
queryset = models.ChangeRequestFormHeader.objects.all()
serializer_class = serializers.ChangeRequestFormHeaderSerializer serializer_class = serializers.ChangeRequestFormHeaderSerializer
pagination_class = paginators.SimplePageNumberPagination pagination_class = paginators.SimplePageNumberPagination
queryset = models.ChangeRequestFormHeader.objects.all()
lookup_field = 'form_code'
def list(self, request, *args, **kwargs): def list(self, request, *args, **kwargs):
# id_number = logged_user(self) id_number = self.request.user
# id_number = 'Acct-20190813-0000138'
# self.queryset = change_request.list_by_user(id_number) # print(id_number.code)
self.queryset = change_request.list_by_user(id_number.code)
self.queryset = change_request.filter_base( self.queryset = change_request.filter_base(
self.queryset, self.queryset,
...@@ -305,10 +318,9 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet): ...@@ -305,10 +318,9 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
Q(requested_to_template_id__icontains=search_key.lower()) Q(requested_to_template_id__icontains=search_key.lower())
) )
# self.queryset = self.queryset.order_by('-created') self.queryset = self.queryset.order_by('-created')
self.queryset = QuerySetHelper.Sort(self) self.queryset = QuerySetHelper.Sort(self)
# self.queryset = QuerySetHelper.Search(self) # comment
return super(ChangeRequestFormsViewset, self).list(request) return super(ChangeRequestFormsViewset, self).list(request)
@action(detail=False, @action(detail=False,
...@@ -317,11 +329,11 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet): ...@@ -317,11 +329,11 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
name="Dashboard Summary") name="Dashboard Summary")
def dashboard_view(self, request): def dashboard_view(self, request):
id_number = logged_user(self) id_number = self.request.user
# id_number = 'Acct-20190813-0000138' # id_number = 'Acct-20190813-0000138'
self.queryset = change_request.list_by_user(id_number) self.queryset = change_request.list_by_user(id_number.code)
self.queryset = change_request.filter_base( self.queryset = change_request.filter_base(
self.queryset, self.queryset,
...@@ -407,11 +419,11 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet): ...@@ -407,11 +419,11 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
name="Dashboard Summary Status") name="Dashboard Summary Status")
def list_by_status_view(self, request): def list_by_status_view(self, request):
id_number = logged_user(self) id_number = self.request.user
# id_number = 'Acct-20190531-0000002' # id_number = 'Acct-20190531-0000002'
self.queryset = change_request.list_by_user(id_number) self.queryset = change_request.list_by_user(id_number.code)
self.queryset = change_request.filter_status( self.queryset = change_request.filter_status(
self.queryset, self.queryset,
...@@ -441,11 +453,11 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet): ...@@ -441,11 +453,11 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
name="Dashboard Summary Overdue") name="Dashboard Summary Overdue")
def list_by_overdue_view(self, request): def list_by_overdue_view(self, request):
id_number = logged_user(self) id_number = self.request.user
# id_number = 'Acct-20190531-0000002' # id_number = 'Acct-20190531-0000002'
self.queryset = change_request.list_by_user(id_number) self.queryset = change_request.list_by_user(id_number.code)
self.queryset = change_request.filter_overdue(self.queryset) self.queryset = change_request.filter_overdue(self.queryset)
...@@ -471,11 +483,11 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet): ...@@ -471,11 +483,11 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
name="Dashboard Summary Awaiting") name="Dashboard Summary Awaiting")
def list_by_awaiting_view(self, request): def list_by_awaiting_view(self, request):
id_number = logged_user(self) id_number = self.request.user
# id_number = 'Acct-20190813-0000137' # id_number = 'Acct-20190813-0000137'
self.queryset = change_request.list_by_user(id_number) 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)
...@@ -574,6 +586,382 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet): ...@@ -574,6 +586,382 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
return self.get_paginated_response(serializer.data) return self.get_paginated_response(serializer.data)
class ChangeRequestFormApproversViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestFormApprovers.objects.all()
serializer_class = serializers.ChangeRequestFormApproversSerializer
pagination_class = paginators.SimplePageNumberPagination
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)
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,
url_path='approved', url_name='approved'
)
def approved(self, request, *args, **kwargs):
objectid = request.data['id']
instance = models.ChangeRequestFormApprovers.objects.filter(
id=objectid
)
# .update(
# set__deleted_at=datetime.utcnow()
# )
instance = instance.first()
current_remarks = instance.remarks
print(current_remarks)
instance.update(
set__deleted_at=datetime.utcnow()
)
# 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
# request.data['remarks'] = current_remarks
print("hello")
print(request.data['remarks'])
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
self.perform_create(serializer)
#------------
id = serializer.data['id']
current_user = request.data['user']
form_code = request.data['form_code']
delegation = request.data['delegation']
action = request.data['action']
level = request.data['level']
next_level = int(request.data['level']) + 1
remarks = request.data['remarks']
next_approver = models.ChangeRequestFormApprovers.objects.filter(
level=str(next_level),
form_code=form_code,
deleted_at=None
)
if action.lower() == 'approved':
models.ChangeRequestFormApprovers.objects.filter(
Q(deleted_at=None) & Q(level=str(next_level))
).update(
date_sent=datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
)
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg = REQUESTOR_MESSAGE.split(';')[0]
requestor_email_code = REQUESTOR_MESSAGE.split(';')[1]
# EMAIL CODE FOR APPROVER
notification_msg = APPROVER_MESSAGE.split(';')[0]
email_code = APPROVER_MESSAGE.split(';')[1]
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action, requestor_email_code,
remarks, level
)
for n_approver in next_approver:
print(n_approver.user)
if n_approver.delegation.lower() == 'vendor/implementor':
notification_msg = VENDOR_ACKNOWLEDGE_MESSAGE.split(';')[0]
email_code = VENDOR_ACKNOWLEDGE_MESSAGE.split(';')[1]
next_appover_email(
n_approver.user, form_code, delegation,
notification_msg, action, email_code
)
elif action.lower() == 'rejected':
if delegation.lower() == 'requestor':
notification_msg = VENDOR_REJECT_MESSAGE.split(';')[0]
email_code = VENDOR_REJECT_MESSAGE.split(';')[1]
send_mail_vendor(
current_user, form_code, delegation,
requestor_notification_msg, action, requestor_email_code,
remarks, level
)
else:
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg = REQUESTOR_REJECT_MESSAGE.split(';')[0]
requestor_email_code = REQUESTOR_REJECT_MESSAGE.split(';')[1]
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action, requestor_email_code,
remarks, level
)
elif action.lower() == 'completed':
models.ChangeRequestFormApprovers.objects.filter(
Q(deleted_at=None) & Q(level=str(next_level))
).update(
date_sent=datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
)
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg = REQUESTOR_COMPLETION_MESSAGE.split(';')[0]
requestor_email_code = REQUESTOR_COMPLETION_MESSAGE.split(';')[1]
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action, requestor_email_code,
remarks, level
)
elif action.lower() == 'acknowledged':
# models.ChangeRequestFormApprovers.objects.filter(
# level=str(next_level)
# ).update(
# date_sent=datetime.now().strftime('%Y-%m-%d, %H:%M:%S')
# )
# EMAIL CODE FOR REQUESTOR
requestor_notification_msg = REQUESTOR_ACKNOWLEDGE_MESSAGE.split(';')[0]
requestor_email_code = REQUESTOR_ACKNOWLEDGE_MESSAGE.split(';')[1]
send_mail_requestor(
current_user, form_code, delegation,
requestor_notification_msg, action, requestor_email_code,
remarks, level
)
elif action.lower() == 'accepted':
# EMAIL CODE FOR VENDOR
requestor_notification_msg = VENDOR_ACCEPTANCE_MESSAGE.split(';')[0]
requestor_email_code = VENDOR_ACCEPTANCE_MESSAGE.split(';')[1]
send_mail_vendor(
current_user, form_code, delegation,
requestor_notification_msg, action, requestor_email_code,
remarks, level
)
# elif action.lower() == 'cancelled':
# action_cancelled(self, request, *args, **kwargs)
headers = self.get_success_headers(serializer.data)
return Response(
serializer.data, status=status.HTTP_201_CREATED
)
#------------
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = QuerySetHelper.Sort(self)
self.queryset = QuerySetHelper.Filter(self)
return super(ChangeRequestFormApproversViewset, self).list(request)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
class ChangeRequestFormAttachmentsViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestFormAttachments.objects.all()
serializer_class = serializers.ChangeRequestFormAttachmentsSerializer
pagination_class = paginators.SimplePageNumberPagination
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = QuerySetHelper.Sort(self)
self.queryset = QuerySetHelper.Filter(self)
return super(
ChangeRequestFormAttachmentsViewset, self
).list(request)
def create(self, request, *args, **kwargs):
attachment_no = request.data.get('attachment_no')
ObjectId = request.data.get('id')
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
if ObjectId:
dbExisting = models.ChangeRequestFormAttachments.objects.filter(
id=ObjectId,
deleted_at=None).first()
if dbExisting:
dbExisting.deleted_at = datetime.now()
dbExisting.save()
self.perform_create(serializer)
if not attachment_no:
id = serializer.data['id']
db_counter = models.ChangeRequestFormAttachments.objects.all().count()
db_counter = db_counter + 1
models.ChangeRequestFormAttachments.objects.filter(id=id).update(
set__attachment_no=number_generator(
"ATCH", db_counter
)
)
headers = self.get_success_headers(serializer.data)
return Response(
serializer.data,
status=status.HTTP_201_CREATED,
headers=headers
)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
class ChangeRequestFormStakeHoldersViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestFormStakeHolders.objects.all()
serializer_class = serializers.ChangeRequestFormStakeHoldersSerializer
pagination_class = paginators.SimplePageNumberPagination
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = QuerySetHelper.Sort(self)
self.queryset = QuerySetHelper.Filter(self)
return super(ChangeRequestFormStakeHoldersViewset, self).list(request)
def create(self, request, *args, **kwargs):
ObjectId = request.data.get('id')
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
if ObjectId:
dbExisting = models.ChangeRequestFormStakeHolders.objects.filter(
id=ObjectId,
deleted_at=None).first()
if dbExisting:
dbExisting.deleted_at = datetime.now()
dbExisting.save()
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
return Response(
serializer.data,
status=status.HTTP_201_CREATED,
headers=headers
)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
class ChangeRequestFormDetailsViewset(meviewsets.ModelViewSet):
queryset = models.ChangeRequestFormDetails.objects.all()
serializer_class = serializers.ChangeRequestFormDetailsSerializer
pagination_class = paginators.SimplePageNumberPagination
def list(self, request, *args, **kwargs):
self.queryset = self.queryset.filter(deleted_at=None)
self.queryset = QuerySetHelper.Sort(self)
self.queryset = QuerySetHelper.Filter(self)
return super(ChangeRequestFormDetailsViewset, self).list(request)
def create(self, request, *args, **kwargs):
ObjectId = request.data.get('id')
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
if ObjectId:
dbExisting = models.ChangeRequestFormDetails.objects.filter(
id=ObjectId,
deleted_at=None).first()
if dbExisting:
dbExisting.deleted_at = datetime.now()
dbExisting.save()
self.perform_create(serializer)
headers = self.get_success_headers(serializer.data)
return Response(
serializer.data,
status=status.HTTP_201_CREATED,
headers=headers
)
def retrieve(self, request, *args, **kwargs):
instance = self.queryset.filter(deleted_at=None).first()
serializer = self.get_serializer(instance)
return Response(serializer.data)
class ChangeRequestFormPost(APIView): class ChangeRequestFormPost(APIView):
# @transaction.atomic() # @transaction.atomic()
......
...@@ -9,9 +9,6 @@ from app.applicationlayer.management.module.views import ModuleViewSet ...@@ -9,9 +9,6 @@ from app.applicationlayer.management.module.views import ModuleViewSet
from app.applicationlayer.management.account.views import UserViewSet from app.applicationlayer.management.account.views import UserViewSet
from app.businesslayer.company.views import AdminCompanyViewSet from app.businesslayer.company.views import AdminCompanyViewSet
from app.applicationlayer.management.notification.views import NotificationsViewset
from app.applicationlayer.management.changerequest import views as crviews
router = routers.DefaultRouter() router = routers.DefaultRouter()
...@@ -21,23 +18,6 @@ router.register(r'departments', DepartmentViewSet) ...@@ -21,23 +18,6 @@ router.register(r'departments', DepartmentViewSet)
router.register(r'modules', ModuleViewSet) router.register(r'modules', ModuleViewSet)
router.register(r'users', UserViewSet) router.register(r'users', UserViewSet)
router.register(r'notifications', NotificationsViewset)
router.register(r'template', crviews.ChangeRequestTemplatesViewset)
router.register(r'template-approvers', crviews.ChangeRequestTemplateApproversViewset)
router.register(r'template-attachments', crviews.ChangeRequestTemplateAttachmentsViewset)
router.register(r'template-stakeholders', crviews.ChangeRequestTemplateStakeHoldersViewset)
router.register(r'template-details', crviews.ChangeRequestTemplateDetailsViewset)
# router.register(r'form', crviews.ChangeRequestFormsViewset)
# router.register(r'form-approvers', crviews.ChangeRequestFormApproversViewset)
# router.register(r'form-stakeholders', crviews.ChangeRequestFormStakeHoldersViewset)
# router.register(r'form-attachments', crviews.ChangeRequestFormAttachmentsViewset)
# router.register(r'form-details', crviews.ChangeRequestFormDetailsViewset)
urlpatterns = ( urlpatterns = (
path('', include(router.urls)), path('', include(router.urls)),
path('template-post/', crviews.ChangeRequestTemplatePost.as_view()),
path('form-post/', crviews.ChangeRequestFormPost.as_view()),
) )
from django.urls import path, include
from rest_framework import routers
from django.conf.urls import url
from app.applicationlayer.management.notification.views import NotificationsViewset
from app.applicationlayer.management.changerequest import views as crviews
router = routers.DefaultRouter()
router.register(r'notifications', NotificationsViewset)
router.register(r'template', crviews.ChangeRequestTemplatesViewset)
router.register(r'template-approvers', crviews.ChangeRequestTemplateApproversViewset)
router.register(r'template-attachments', crviews.ChangeRequestTemplateAttachmentsViewset)
router.register(r'template-stakeholders', crviews.ChangeRequestTemplateStakeHoldersViewset)
router.register(r'template-details', crviews.ChangeRequestTemplateDetailsViewset)
router.register(r'form', crviews.ChangeRequestFormsViewset)
router.register(r'form-approvers', crviews.ChangeRequestFormApproversViewset)
router.register(r'form-stakeholders', crviews.ChangeRequestFormStakeHoldersViewset)
router.register(r'form-attachments', crviews.ChangeRequestFormAttachmentsViewset)
router.register(r'form-details', crviews.ChangeRequestFormDetailsViewset)
urlpatterns = (
path('', include(router.urls)),
path('template-post/', crviews.ChangeRequestTemplatePost.as_view()),
path('form-post/', crviews.ChangeRequestFormPost.as_view()),
)
...@@ -24,17 +24,20 @@ def list_by_user(user_id_number): ...@@ -24,17 +24,20 @@ def list_by_user(user_id_number):
Q(user=user_id_number) & Q(user=user_id_number) &
Q(deleted_at=None) Q(deleted_at=None)
) )
approver = [data['form_code'] for data in approver]
approver = [data.form_code for data in approver]
stake = models.ChangeRequestFormStakeHolders.objects.filter( stake = models.ChangeRequestFormStakeHolders.objects.filter(
Q(user=user_id_number) & Q(user=user_id_number) &
Q(deleted_at=None) Q(deleted_at=None)
) )
stake = [data['form_code'] for data in stake] stake = [data.form_code for data in stake]
headers = models.ChangeRequestFormHeader.objects.filter( headers = models.ChangeRequestFormHeader.objects.filter(
deleted_at=None, deleted_at=None,
requested_by_user=user_id_number requested_by_user=user_id_number
) )
headers = [data['form_code'] for data in headers] headers = [data.form_code for data in headers]
# # TODO: Include priviledges here # # TODO: Include priviledges here
# req = get_allowed_company(user_id_number) # req = get_allowed_company(user_id_number)
...@@ -65,7 +68,7 @@ def list_by_user(user_id_number): ...@@ -65,7 +68,7 @@ def list_by_user(user_id_number):
status__iexact='Draft', status__iexact='Draft',
requested_by_user__ne=user_id_number requested_by_user__ne=user_id_number
) )
exclude = [data['form_code'] for data in exclude] exclude = [data.form_code for data in exclude]
return_queryset = return_queryset.filter( return_queryset = return_queryset.filter(
form_code__nin=exclude form_code__nin=exclude
......
# Generated by Django 2.2 on 2019-09-10 09:56
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0002_remove_application_app_code'),
]
operations = [
migrations.AlterField(
model_name='changerequestformheader',
name='requested_to_template_id',
field=models.CharField(max_length=255, unique=True),
),
migrations.AlterField(
model_name='changerequesttemplateheader',
name='requested_to_template_id',
field=models.CharField(max_length=255, unique=True),
),
]
...@@ -354,7 +354,7 @@ class BaseHeader(models.Model): ...@@ -354,7 +354,7 @@ class BaseHeader(models.Model):
to_field='code') to_field='code')
requested_to_template_name = models.CharField(max_length=255) requested_to_template_name = models.CharField(max_length=255)
requested_to_template_id = models.CharField(max_length=255) requested_to_template_id = models.CharField(max_length=255, unique=True)
requested_to_objective = models.CharField( requested_to_objective = models.CharField(
max_length=255, max_length=255,
......
...@@ -27,4 +27,14 @@ SESSION_TIMEOUT = config['DEV']['SESSION_TIMEOUT'] ...@@ -27,4 +27,14 @@ SESSION_TIMEOUT = config['DEV']['SESSION_TIMEOUT']
FRONT_END_URL = config['DEV']['FRONT_END_URL'] FRONT_END_URL = config['DEV']['FRONT_END_URL']
AUTH_ACCESSS_TOKEN_TIMEOUT = config['DEV']['AUTH_ACCESSS_TOKEN_TIMEOUT'] AUTH_ACCESSS_TOKEN_TIMEOUT = config['DEV']['AUTH_ACCESSS_TOKEN_TIMEOUT']
USER_DEFAULT_PASSWORD = config['DEV']['USER_DEFAULT_PASSWORD'] USER_DEFAULT_PASSWORD = config['DEV']['USER_DEFAULT_PASSWORD']
REALTIMESERVER_IP = config['NOTIFICATION']['REALTIMESERVER_IP'] REALTIMESERVER_IP = config['NOTIFICATION']['REALTIMESERVER_IP']
\ No newline at end of file
# Notification Messages
APPROVER_MESSAGE = config['NOTIFICATION_EMAIL']['APPROVER_MESSAGE']
REQUESTOR_MESSAGE = config['NOTIFICATION_EMAIL']['REQUESTOR_MESSAGE']
REQUESTOR_REJECT_MESSAGE = config['NOTIFICATION_EMAIL']['REQUESTOR_REJECT_MESSAGE']
VENDOR_ACKNOWLEDGE_MESSAGE = config['NOTIFICATION_EMAIL']['VENDOR_ACKNOWLEDGE_MESSAGE']
REQUESTOR_ACKNOWLEDGE_MESSAGE = config['NOTIFICATION_EMAIL']['REQUESTOR_ACKNOWLEDGE_MESSAGE']
REQUESTOR_COMPLETION_MESSAGE = config['NOTIFICATION_EMAIL']['REQUESTOR_COMPLETION_MESSAGE']
VENDOR_ACCEPTANCE_MESSAGE = config['NOTIFICATION_EMAIL']['VENDOR_ACCEPTANCE_MESSAGE']
VENDOR_REJECT_MESSAGE = config['NOTIFICATION_EMAIL']['VENDOR_REJECT_MESSAGE']
\ No newline at end of file
...@@ -25,4 +25,14 @@ SESSION_TIMEOUT = config['LOCAL']['SESSION_TIMEOUT'] ...@@ -25,4 +25,14 @@ SESSION_TIMEOUT = config['LOCAL']['SESSION_TIMEOUT']
FRONT_END_URL = config['LOCAL']['FRONT_END_URL'] FRONT_END_URL = config['LOCAL']['FRONT_END_URL']
AUTH_ACCESSS_TOKEN_TIMEOUT = config['LOCAL']['AUTH_ACCESSS_TOKEN_TIMEOUT'] AUTH_ACCESSS_TOKEN_TIMEOUT = config['LOCAL']['AUTH_ACCESSS_TOKEN_TIMEOUT']
USER_DEFAULT_PASSWORD = config['LOCAL']['USER_DEFAULT_PASSWORD'] USER_DEFAULT_PASSWORD = config['LOCAL']['USER_DEFAULT_PASSWORD']
REALTIMESERVER_IP = config['NOTIFICATION']['REALTIMESERVER_IP'] REALTIMESERVER_IP = config['NOTIFICATION']['REALTIMESERVER_IP']
\ No newline at end of file
# Notification Messages
APPROVER_MESSAGE = config['NOTIFICATION_EMAIL']['APPROVER_MESSAGE']
REQUESTOR_MESSAGE = config['NOTIFICATION_EMAIL']['REQUESTOR_MESSAGE']
REQUESTOR_REJECT_MESSAGE = config['NOTIFICATION_EMAIL']['REQUESTOR_REJECT_MESSAGE']
VENDOR_ACKNOWLEDGE_MESSAGE = config['NOTIFICATION_EMAIL']['VENDOR_ACKNOWLEDGE_MESSAGE']
REQUESTOR_ACKNOWLEDGE_MESSAGE = config['NOTIFICATION_EMAIL']['REQUESTOR_ACKNOWLEDGE_MESSAGE']
REQUESTOR_COMPLETION_MESSAGE = config['NOTIFICATION_EMAIL']['REQUESTOR_COMPLETION_MESSAGE']
VENDOR_ACCEPTANCE_MESSAGE = config['NOTIFICATION_EMAIL']['VENDOR_ACCEPTANCE_MESSAGE']
VENDOR_REJECT_MESSAGE = config['NOTIFICATION_EMAIL']['VENDOR_REJECT_MESSAGE']
...@@ -24,6 +24,7 @@ urlpatterns = [ ...@@ -24,6 +24,7 @@ urlpatterns = [
path('api-auth/', include('rest_framework.urls')), path('api-auth/', include('rest_framework.urls')),
path('api/v1/auth/', include('app.accesslayer.urls')), path('api/v1/auth/', include('app.accesslayer.urls')),
path('api/v1/management/', include('app.applicationlayer.urls')), path('api/v1/management/', include('app.applicationlayer.urls')),
path('api/v1/change-request/', include('app.applicationlayer.urls_cms')),
path('api/v1/master/', include('app.applicationlayer.master.urls')), path('api/v1/master/', include('app.applicationlayer.master.urls')),
url(r'^chat/$', notifview.index, name='index'), url(r'^chat/$', notifview.index, name='index'),
url(r'^chat/(?P<room_name>[^/]+)/$', notifview.room, name='room'), url(r'^chat/(?P<room_name>[^/]+)/$', notifview.room, name='room'),
......
...@@ -51,3 +51,13 @@ REALTIMESERVER_IP = 127.0.0.1:8000 ...@@ -51,3 +51,13 @@ REALTIMESERVER_IP = 127.0.0.1:8000
[SETTINGS] [SETTINGS]
CONFIG = config.settings.local CONFIG = config.settings.local
[NOTIFICATION_EMAIL]
APPROVER_MESSAGE = has sent you an APPROVAL REQUEST for change request;RMS-ACTIONREQUIRED
REQUESTOR_MESSAGE = has APPROVED the change request;RMS-CRAPPROVED
REQUESTOR_REJECT_MESSAGE = has REJECTED the change request;RMS-CRREJECTED
VENDOR_ACKNOWLEDGE_MESSAGE = has sent you an ACKNOWLEDGEMENT REQUEST for change request;RMS-ACTIONREQUIRED-VENDOR
REQUESTOR_ACKNOWLEDGE_MESSAGE = has ACKNOWLEDGED the change request;RMS-CRACKNOWLEDGE
REQUESTOR_COMPLETION_MESSAGE = has COMPLETED the change request;RMS-CRCOMPLETED
VENDOR_ACCEPTANCE_MESSAGE = has ACCEPTED the change request;RMS-CRACCEPTED
VENDOR_REJECT_MESSAGE = has REJECTED the change request;RMS-CRREJECTED-VENDOR
\ No newline at end of file
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