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(
......
...@@ -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