Commit 4a4e7be9 authored by John Red Medrano's avatar John Red Medrano

Merge branch 'RMSv2' of http://42.61.118.105:7990/scm/rms/api-main-service into red-develop

parents a1b2a762 46651d98
......@@ -32,6 +32,7 @@ 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
APPROVER_MESSAGE = settings.APPROVER_MESSAGE
......@@ -267,7 +268,6 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
serializer = self.get_serializer(instance)
return Response(serializer.data)
@action(
methods=['PATCH'], detail=True,
url_path='re_route', url_name='re_route'
......@@ -277,30 +277,26 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
# generate batchno history
batchno = get_max_batchno("batch")
partial = kwargs.pop('partial', False)
# partial update
partial = kwargs.pop('partial', True)
instance = self.get_object()
form_code = kwargs['form_code']
body_data = request.data
status_update = {"status": 'Pending'}
serializer = self.get_serializer(instance,
data=status_update,
partial=partial)
# get old data
old_instance = models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).values()
old_instance = list(old_instance)
# update status to pending
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).update(status='Pending')
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(instance)
self.perform_update(serializer)
# get new data
new_instance = models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).values()
form_header = get_object_or_404(models.ChangeRequestFormHeader,
pk=instance.id)
new_instance = list(new_instance)
new_instance = model_to_dict(form_header)
# save history in form header
crhistory_save(
......@@ -313,82 +309,88 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
new_instance
)
approver_data = []
# get all approvers of form
approvers = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code)
for approver in approvers:
# get old data
old_instance = models.ChangeRequestFormApprovers.objects.filter(
code=approver.code).values()
old_instance = list(old_instance)
# reset details
models.ChangeRequestFormApprovers.objects.filter(
code=approver.code).update(action=None,
remarks=None,
date_sent=None,
action_date=None)
# get new data
new_instance = models.ChangeRequestFormApprovers.objects.filter(
code=approver.code).values()
approver_add = {
'id': approver.id,
'action': None,
'remarks': None,
'date_sent': None,
'action_date': None
}
new_instance = list(new_instance)
approver_data.append(approver_add)
# save history in form approver
crhistory_save(
batchno,
enums.CREnum.REROUTE.value,
enums.CREnum.UPDATE.value,
change_request.form_add_edit_delete(
approver_data,
models.ChangeRequestFormApprovers,
enums.CREntitiesEnum.CR_FRM_APPROVER.value,
serializers.ChangeRequestFormApproversSerializer,
partial,
self,
form_code,
old_instance,
new_instance
batchno,
enums.CREnum.REROUTE.value
)
return Response(
"Change request form successfully re routed",
status=status.HTTP_200_OK
min_level = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code
).aggregate(Min('level'))
min_level = min_level.get('level__min')
next_approver_email(form_code, min_level)
# update next approver details
models.ChangeRequestFormApprovers.objects.filter(
Q(form_code=form_code) & Q(level=str(min_level))
).update(
date_sent=datetime.now()
)
message = status_message_response(
200, 'success',
'Change request form successfully re routed',
serializer.data
)
return Response(message, status=status.HTTP_200_OK)
@action(
methods=['PATCH'], detail=True,
url_path='re_submit', url_name='re_submit'
)
def re_submit(self, request, *args, **kwargs):
form_code = kwargs['form_code']
# generate batchno history
batchno = get_max_batchno("batch")
# get old data
old_instance = models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).values()
# partial update
partial = kwargs.pop('partial', True)
instance = self.get_object()
old_instance = list(old_instance)
form_code = kwargs['form_code']
# get template no
tmp_no = models.ChangeRequestFormHeader.objects.values_list(
'template_no', flat=True).get(form_code=form_code)
# get prefix of template
CR_Prefix = models.ChangeRequestTemplateHeader.objects.values_list(
'requested_to_template_id', flat=True).get(template_no=tmp_no)
# update form header to draft and template id to prefix
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).update(
requested_to_template_id=CR_Prefix,
status='Draft')
status_update = {"status": 'Draft'}
# get new data
new_instance = models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).values()
serializer = self.get_serializer(instance,
data=status_update,
partial=partial)
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(instance)
self.perform_update(serializer)
form_header = get_object_or_404(models.ChangeRequestFormHeader,
pk=instance.id)
new_instance = list(new_instance)
new_instance = model_to_dict(form_header)
# save history in form header
crhistory_save(
......@@ -401,46 +403,43 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
new_instance
)
approver_data = []
# get all approvers of form
approvers = models.ChangeRequestFormApprovers.objects.filter(
form_code=form_code)
for approver in approvers:
# get old data
old_instance = models.ChangeRequestFormApprovers.objects.filter(
code=approver.code).values()
old_instance = list(old_instance)
# reset details
models.ChangeRequestFormApprovers.objects.filter(
code=approver.code).update(action=None,
remarks=None,
date_sent=None,
action_date=None)
# get new data
new_instance = models.ChangeRequestFormApprovers.objects.filter(
code=approver.code).values()
approver_add = {
'id': approver.id,
'action': None,
'remarks': None,
'date_sent': None,
'action_date': None
}
new_instance = list(new_instance)
approver_data.append(approver_add)
# save history in form approver
crhistory_save(
batchno,
enums.CREnum.RESUBMIT.value,
enums.CREnum.UPDATE.value,
change_request.form_add_edit_delete(
approver_data,
models.ChangeRequestFormApprovers,
enums.CREntitiesEnum.CR_FRM_APPROVER.value,
serializers.ChangeRequestFormApproversSerializer,
partial,
self,
form_code,
old_instance,
new_instance
batchno,
enums.CREnum.RESUBMIT.value
)
return Response(
"Change request form successfully resubmitted",
status=status.HTTP_200_OK
message = status_message_response(
200, 'success',
'Change request form successfully re submitted',
serializer.data
)
return Response(message, status=status.HTTP_200_OK)
# actions
@action(
methods=['PATCH'], detail=False,
......@@ -462,41 +461,38 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
# generate batchno history
batchno = get_max_batchno("batch")
# get old data
old_instance = models.ChangeRequestFormApprovers.objects.filter(
pk=id).values()
action_data = {
'id': int(request.data['id']),
'action': action,
'remarks': remarks,
'action_date': datetime.now()
}
old_instance = list(old_instance)
approver_instance = models.ChangeRequestFormApprovers.objects.get(
pk=id
)
# update current row in routing table
models.ChangeRequestFormApprovers.objects.filter(
pk=id).update(action=action,
remarks=remarks,
action_date=datetime.now())
serializer = serializers.ChangeRequestFormApproversSerializer(
approver_instance,
data=action_data,
partial=True)
# get new data
new_instance = models.ChangeRequestFormApprovers.objects.filter(
pk=id).values()
serializer.is_valid(raise_exception=True)
old_instance = model_to_dict(approver_instance)
new_instance = list(new_instance)
self.perform_update(serializer)
new_instance = serializer.data
crenum = action.upper()
# save history in form approver
crhistory_save(
batchno,
"ACTION",
crenum,
enums.CREnum.ACTION.value,
enums.CREnum.UPDATE.value,
enums.CREntitiesEnum.CR_FRM_APPROVER.value,
form_code,
old_instance,
new_instance
)
# get details of next approver/s
next_approver = models.ChangeRequestFormApprovers.objects.filter(
level=str(next_level),
form_code=form_code
)
if action.lower() == 'approved':
# NOTIF MSG FOR REQUESTOR
......@@ -512,16 +508,7 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
remarks, level
)
# LOOP on next approver for sending email
for n_approver in next_approver:
if n_approver.delegation.lower() == 'vendor/implementor':
notification_msg = VENDOR_ACKNOWLEDGE_MESSAGE.split(';')[0]
next_approver_email(
n_approver.user.code, form_code, delegation,
notification_msg
)
next_approver_email(form_code, next_level)
# update next approver details
models.ChangeRequestFormApprovers.objects.filter(
......@@ -599,11 +586,15 @@ class ChangeRequestFormsViewset(meviewsets.ModelViewSet):
models.ChangeRequestFormHeader.objects.filter(
form_code=form_code).update(status='Cancelled')
return Response(
"Action performed",
status=status.HTTP_200_OK
message = status_message_response(
200, 'success',
'Action performed',
serializer.data
)
return Response(message, status=status.HTTP_200_OK)
@transaction.atomic
@action(
methods=['PATCH'], detail=True,
......
......@@ -10,6 +10,38 @@ from app.applicationlayer.cms.utils_cr import (get_account_details,
class ChangeRequestTemplateApproversSerializer(
serializers.ModelSerializer
):
def to_representation(self, instance):
ret = super().to_representation(instance)
try:
user = instance.user
user_details = get_account_details(user.code)
name = user_details.values_list('name', flat=True)[0]
email = user_details.values_list('email', flat=True)[0]
contact_no = user_details.values_list('contact_no', flat=True)[0]
dept_code = user_details.values_list('department', flat=True)[0]
department_details = get_dept_details(dept_code)
department = department_details.values_list('name', flat=True)[0]
comp_code = department_details.values_list('company', flat=True)[0]
company_details = get_companies_details(comp_code)
company = company_details.values_list('name', flat=True)[0]
ret['company'] = company
ret['department'] = department
ret['name'] = name
ret['email'] = email
ret['contact_no'] = contact_no
return ret
except Exception as e:
ret['company'] = "none"
ret['department'] = "none"
ret['name'] = "none"
ret['email'] = "none"
ret['contact_no'] = "none"
return ret
class Meta:
model = models.ChangeRequestTemplateApprovers
fields = '__all__'
......@@ -19,6 +51,38 @@ class ChangeRequestTemplateApproversSerializer(
class ChangeRequestTemplateStakeHoldersSerializer(
serializers.ModelSerializer
):
def to_representation(self, instance):
ret = super().to_representation(instance)
try:
user = instance.user
user_details = get_account_details(user.code)
name = user_details.values_list('name', flat=True)[0]
email = user_details.values_list('email', flat=True)[0]
contact_no = user_details.values_list('contact_no', flat=True)[0]
dept_code = user_details.values_list('department', flat=True)[0]
department_details = get_dept_details(dept_code)
department = department_details.values_list('name', flat=True)[0]
comp_code = department_details.values_list('company', flat=True)[0]
company_details = get_companies_details(comp_code)
company = company_details.values_list('name', flat=True)[0]
ret['company'] = company
ret['department'] = department
ret['name'] = name
ret['email'] = email
ret['contact_no'] = contact_no
return ret
except Exception as e:
ret['company'] = "none"
ret['department'] = "none"
ret['name'] = "none"
ret['email'] = "none"
ret['contact_no'] = "none"
return ret
class Meta:
model = models.ChangeRequestTemplateStakeHolders
fields = '__all__'
......
......@@ -328,11 +328,6 @@ class ChangeRequestTemplatePost(APIView):
'requested_to_user': template_header['requested_to_user']
}
tmp_approvers = template_header['tmp_approvers']
tmp_stakes = template_header['tmp_stakes']
tmp_attachments = template_header['tmp_attachments']
tmp_details = template_header['tmp_details']
sp1 = transaction.savepoint() # nothing will save to db
serializer = serializers.ChangeRequestTemplatesSerializer(
......@@ -344,6 +339,7 @@ class ChangeRequestTemplatePost(APIView):
tmp_id = serializer.data['template_no']
# create template approvers
tmp_approvers = template_header['tmp_approvers']
for tmp_approver in tmp_approvers:
tmp_approver['template_no'] = tmp_id
......@@ -356,6 +352,8 @@ class ChangeRequestTemplatePost(APIView):
serializerApprover.save()
# create template stakes
if template_header['tmp_stakes']:
tmp_stakes = template_header['tmp_stakes']
for tmp_stake in tmp_stakes:
tmp_stake['template_no'] = tmp_id
......@@ -368,6 +366,8 @@ class ChangeRequestTemplatePost(APIView):
serializerStake.save()
# create template attachments
if template_header['tmp_attachments']:
tmp_attachments = template_header['tmp_attachments']
for tmp_attachment in tmp_attachments:
tmp_attachment['template_no'] = tmp_id
......@@ -380,6 +380,8 @@ class ChangeRequestTemplatePost(APIView):
serializerAttach.save()
# create template details
if template_header['tmp_details']:
tmp_details = template_header['tmp_details']
for tmp_detail in tmp_details:
tmp_detail['template_no'] = tmp_id
......
......@@ -18,6 +18,14 @@ from django.db.models import Max
CR_FRONT_LINK = settings.CR_FRONT_LINK
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
def entity_log_bulk(queryset, entity, tbl):
......@@ -277,7 +285,7 @@ def send_mail_requestor(current_user,
current_user)
def next_approver_email(receiver, form_code, delegation, msg):
def next_approver_email(form_code, next_level):
cr_link = f'{CR_FRONT_LINK}/{form_code}'
template_instance = get_template_instance(form_code)
......@@ -289,12 +297,6 @@ def next_approver_email(receiver, form_code, delegation, msg):
requested_to_priority = template_instance.requested_to_priority
cr_status = template_instance.status
# next approver details --------------------------------------------------
receiver_instance = get_account_details(receiver)
receiver_name = receiver_instance.values_list('name', flat=True)[0]
receiver_email = receiver_instance.values_list('email', flat=True)[0]
receiver_code = receiver_instance.values_list('code', flat=True)[0]
# requestor details --------------------------------------------------
sender_instance = get_account_details(requested_by_user)
sender_email = sender_instance.values_list('email', flat=True)[0]
......@@ -307,6 +309,27 @@ def next_approver_email(receiver, form_code, delegation, msg):
company = get_companies_details(requested_to_company)
company_name = company.values_list('name', flat=True)[0]
# get details of next approver/s
next_approver = models.ChangeRequestFormApprovers.objects.filter(
level=str(next_level),
form_code=form_code
)
# LOOP on next approver for sending email
for n_approver in next_approver:
# NOTIF MSG FOR NEXT APPROVER
msg = APPROVER_MESSAGE.split(';')[0]
if n_approver.delegation.lower() == 'vendor/implementor':
msg = VENDOR_ACKNOWLEDGE_MESSAGE.split(';')[0]
# next approver details --------------------------------------------------
receiver_instance = get_account_details(n_approver.user.code)
receiver_name = receiver_instance.values_list('name', flat=True)[0]
receiver_email = receiver_instance.values_list('email', flat=True)[0]
receiver_code = receiver_instance.values_list('code', flat=True)[0]
# call sender email
name = receiver_name
......@@ -319,7 +342,7 @@ def next_approver_email(receiver, form_code, delegation, msg):
url = cr_link
recipient = receiver_email
delegation_type = delegation
delegation_type = n_approver.delegation.lower()
admin = sender_email
args = [name, cr_number, cr_name,
......
......@@ -139,8 +139,10 @@ def send_broadcast_message(room_name, sender, message):
def notification_create(form_code, message, account_no, sender_account_no):
# try:
v = Notification.objects.create(
try:
Notification.objects.create(
form_code=form_code,
notif_type='TASK',
message=message,
......@@ -149,15 +151,15 @@ def notification_create(form_code, message, account_no, sender_account_no):
account_no=account_no,
sender_account_no=sender_account_no
)
print(v)
# ROOM = account_no
# SENDER = sender_account_no
# send_broadcast_message(
# ROOM,
# SENDER,
# 'NEW NOTIFICATIONS'
# )
ROOM = account_no
SENDER = sender_account_no
send_broadcast_message(
ROOM,
SENDER,
'NEW NOTIFICATIONS'
)
# message = {
# 'code': 200,
......@@ -167,11 +169,11 @@ def notification_create(form_code, message, account_no, sender_account_no):
# return Response(message, status=status.HTTP_200_OK)
return True
# except Exception as e:
# message = {
# 'code': 500,
# 'status': 'failed',
# 'message': 'Request was not able to process' + str(e.__class__)
# }
# return Response(message,
# status=status.HTTP_500_INTERNAL_SERVER_ERROR)
\ No newline at end of file
except Exception as e:
message = {
'code': 500,
'status': 'failed',
'message': 'Request was not able to process' + str(e.__class__)
}
return Response(message,
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
\ No newline at end of file
......@@ -103,6 +103,7 @@ class CREnum(Enum):
ACCEPTED = "ACCEPTED"
ACKNOWLEDGED = "ACKNOWLEDGED"
REJECTED = "REJECTED"
ACTION = "ACTION"
class CREntitiesEnum(Enum):
......
......@@ -84,15 +84,6 @@ WSGI_APPLICATION = 'config.wsgi.application'
ASGI_APPLICATION = "config.routing.application"
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
"hosts": [('127.0.0.1', 6379)],
},
},
}
AUTH_USER_MODEL = 'entities.User'
# Password validation
......
......@@ -9,6 +9,15 @@ config = configparser.ConfigParser()
config_file = os.path.join('./', 'env.ini')
config.read(config_file)
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
"hosts": [('172.17.0.1', 6379)],
},
},
}
DATABASES = {
'default': {
'ENGINE': config['DEV']['DATABASE_ENGINE'],
......@@ -27,7 +36,7 @@ SESSION_TIMEOUT = config['DEV']['SESSION_TIMEOUT']
FRONT_END_URL = config['DEV']['FRONT_END_URL']
AUTH_ACCESSS_TOKEN_TIMEOUT = config['DEV']['AUTH_ACCESSS_TOKEN_TIMEOUT']
USER_DEFAULT_PASSWORD = config['DEV']['USER_DEFAULT_PASSWORD']
REALTIMESERVER_IP = config['NOTIFICATION']['REALTIMESERVER_IP']
REALTIMESERVER_IP = config['DEV']['REALTIMESERVER_IP']
# Notification Messages
APPROVER_MESSAGE = config['NOTIFICATION_EMAIL']['APPROVER_MESSAGE']
......
......@@ -7,6 +7,15 @@ config = configparser.ConfigParser()
config_file = os.path.join(BASE_DIR, 'env.ini')
config.read(config_file)
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
"hosts": [('127.0.0.1', 6379)],
},
},
}
DATABASES = {
'default': {
'ENGINE': config['LOCAL']['DATABASE_ENGINE'],
......@@ -25,7 +34,7 @@ SESSION_TIMEOUT = config['LOCAL']['SESSION_TIMEOUT']
FRONT_END_URL = config['LOCAL']['FRONT_END_URL']
AUTH_ACCESSS_TOKEN_TIMEOUT = config['LOCAL']['AUTH_ACCESSS_TOKEN_TIMEOUT']
USER_DEFAULT_PASSWORD = config['LOCAL']['USER_DEFAULT_PASSWORD']
REALTIMESERVER_IP = config['NOTIFICATION']['REALTIMESERVER_IP']
REALTIMESERVER_IP = config['LOCAL']['REALTIMESERVER_IP']
# Notification Messages
APPROVER_MESSAGE = config['NOTIFICATION_EMAIL']['APPROVER_MESSAGE']
......
......@@ -9,6 +9,15 @@ config = configparser.ConfigParser()
config_file = os.path.join('./', 'env.ini')
config.read(config_file)
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
"hosts": [('172.17.0.1', 6379)],
},
},
}
DATABASES = {
'default': {
'ENGINE': config['PRODUCTION']['DATABASE_ENGINE'],
......@@ -27,7 +36,7 @@ SESSION_TIMEOUT = config['PRODUCTION']['SESSION_TIMEOUT']
FRONT_END_URL = config['PRODUCTION']['FRONT_END_URL']
AUTH_ACCESSS_TOKEN_TIMEOUT = config['PRODUCTION']['AUTH_ACCESSS_TOKEN_TIMEOUT']
USER_DEFAULT_PASSWORD = config['PRODUCTION']['USER_DEFAULT_PASSWORD']
REALTIMESERVER_IP = config['NOTIFICATION']['REALTIMESERVER_IP']
REALTIMESERVER_IP = config['PRODUCTION']['REALTIMESERVER_IP']
# Notification Messages
APPROVER_MESSAGE = config['NOTIFICATION_EMAIL']['APPROVER_MESSAGE']
......
......@@ -9,6 +9,15 @@ config = configparser.ConfigParser()
config_file = os.path.join('./', 'env.ini')
config.read(config_file)
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
"hosts": [('172.17.0.1', 6379)],
},
},
}
DATABASES = {
'default': {
'ENGINE': config['UAT']['DATABASE_ENGINE'],
......@@ -27,7 +36,7 @@ SESSION_TIMEOUT = config['UAT']['SESSION_TIMEOUT']
FRONT_END_URL = config['UAT']['FRONT_END_URL']
AUTH_ACCESSS_TOKEN_TIMEOUT = config['UAT']['AUTH_ACCESSS_TOKEN_TIMEOUT']
USER_DEFAULT_PASSWORD = config['UAT']['USER_DEFAULT_PASSWORD']
REALTIMESERVER_IP = config['NOTIFICATION']['REALTIMESERVER_IP']
REALTIMESERVER_IP = config['UAT']['REALTIMESERVER_IP']
# Notification Messages
......
......@@ -11,6 +11,7 @@ AUTH_ACCESSS_TOKEN_TIMEOUT =
USER_DEFAULT_PASSWORD =
CATCH_EMAIL = gladys@tirsolutions.com
CR_LINK = http://staging.rms.oneberrysystem.com/cms/change-request/form/view
REALTIMESERVER_IP = 127.0.0.1:8000
[UAT]
DATABASE_ENGINE = django.db.backends.mysql
......@@ -25,6 +26,7 @@ AUTH_ACCESSS_TOKEN_TIMEOUT =
USER_DEFAULT_PASSWORD =
CATCH_EMAIL = gladys@tirsolutions.com
CR_LINK = http://staging.rms.oneberrysystem.com/cms/change-request/form/view
REALTIMESERVER_IP = 127.0.0.1:8000
[DEV]
DATABASE_ENGINE = django.db.backends.mysql
......@@ -39,6 +41,7 @@ AUTH_ACCESSS_TOKEN_TIMEOUT =
USER_DEFAULT_PASSWORD =
CATCH_EMAIL = gladys@tirsolutions.com
CR_LINK = http://devweb.rms.oneberrysystem.com/cms/change-request/form/view
REALTIMESERVER_IP = 127.0.0.1:8000
[LOCAL]
DATABASE_ENGINE = django.db.backends.mysql
......@@ -53,8 +56,6 @@ AUTH_ACCESSS_TOKEN_TIMEOUT = 3600
USER_DEFAULT_PASSWORD = password
CATCH_EMAIL = gladys@tirsolutions.com
CR_LINK = http://localhost:8000/cms/change-request/form/view
[NOTIFICATION]
REALTIMESERVER_IP = 127.0.0.1:8000
[SETTINGS]
......
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