Commit 63ef0f05 authored by Gladys Forte's avatar Gladys Forte

Merge branch 'product-sit' into 'product-staging'

Product sit

See merge request rms/Backend/api-main-service!946
parents 7bedab01 b9164b5a
......@@ -33,13 +33,13 @@ class AllowedCompanyViewSet(viewsets.ModelViewSet):
)
def list(self, request, *args, **kwargs):
# hello again
queryset = self.filter_queryset(self.get_queryset())
page = self.paginate_queryset(queryset)
if page is not None:
serializer = self.get_serializer(page, many=True)
message = status_message_response(
200,
'success',
......
......@@ -7,8 +7,7 @@ from rest_framework import status, views
from django.db.models import Q
from app.applicationlayer.utils import (QuerySetHelper,
status_message_response,
send_broadcast_message)
status_message_response)
from app.businesslayer.changerequest import change_request
from app.entities import enums
......
......@@ -45,12 +45,26 @@ class ChangeRequestTemplatesSerializer(
"code": instance.requested_to_department.code,
"name": instance.requested_to_department.name
}
created_by_user_object = {
"id": instance.created_by_user.id,
"name": instance.created_by_user.name,
"username": instance.created_by_user.username,
"code": instance.created_by_user.code,
"email": instance.created_by_user.email,
"contact_no": instance.created_by_user.contact_no,
"company_code": instance.created_by_user.department.company.code,
"company_name": instance.created_by_user.department.company.name,
"department_code": instance.created_by_user.department.code,
"department_name": instance.created_by_user.department.name
}
ret['requested_to_user'] = requested_to_user_object
ret['company'] = instance.requested_to_company.name
ret['department'] = instance.requested_to_department.name
ret['point_of_contact'] = instance.requested_to_user.name
ret['created_by'] = instance.created_by_user.name
ret['created_by_user'] = created_by_user_object
return ret
......@@ -59,12 +73,12 @@ class ChangeRequestTemplatesSerializer(
ret['requested_to_company'] = "none"
ret['requested_to_department'] = "none"
ret['requested_to_user'] = "none"
ret['created_by_user'] = "none"
ret['company'] = "none"
ret['department'] = "none"
ret['point_of_contact'] = "none"
ret['created_by'] = "none"
return ret
class Meta:
......@@ -87,7 +101,10 @@ class ChangeRequestTemplatesSerializerList(
def to_representation(self, instance):
ret = super().to_representation(instance)
try:
current_user = self.context['request'].user.code
ret['company'] = instance.requested_to_company.name
ret['department'] = instance.requested_to_department.name
ret['point_of_contact'] = instance.requested_to_user.name
......@@ -96,18 +113,21 @@ class ChangeRequestTemplatesSerializerList(
template_no=instance.template_no
)
can_delete = ''
owned_template = ''
if instance.created_by_user.code == current_user:
owned_template = True
else:
owned_template = False
if child.count() > 0:
can_delete = False
else:
can_delete = True
ret['can_delete'] = can_delete
ret['owned_template'] = owned_template
return ret
except Exception as e:
......
......@@ -21,7 +21,8 @@ from app.applicationlayer.cms.utils_cr import (
)
from app.businesslayer.changerequest.change_request_template import (
tmp_add_edit_delete
tmp_add_edit_delete,
list_by_dept_privilege
)
from app.applicationlayer.cms.template.approver.serializers import ChangeRequestTemplateApproversSerializer
from app.applicationlayer.cms.template.stakeholder.serializers import ChangeRequestTemplateStakeHoldersSerializer
......@@ -38,7 +39,7 @@ from django_filters.rest_framework import DjangoFilterBackend
class ChangeRequestTemplatesViewset(viewsets.ModelViewSet):
# queryset = models.ChangeRequestTemplateHeader.objects.all()
queryset = models.ChangeRequestTemplateHeader.objects.select_related(
'created_by_user', 'created_by_department'
......@@ -67,13 +68,13 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet):
)
def list(self, request, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
queryset = queryset.filter(created_by_user=request.user.code,
is_active=True)
self.serializer_class = ChangeRequestTemplatesSerializerList
id_number = self.request.user.code
self.queryset = list_by_dept_privilege(id_number)
queryset = self.filter_queryset(self.queryset)
page = self.paginate_queryset(queryset)
if page is not None:
......@@ -82,7 +83,7 @@ class ChangeRequestTemplatesViewset(viewsets.ModelViewSet):
message = status_message_response(
200,
'success',
'List of Templates found',
'List of Change Request Template found',
serializer.data
)
......
......@@ -22,7 +22,6 @@ class UserDownloadRequest(XLSXFileMixin, ReadOnlyModelViewSet):
permission_classes = (AllowAny,)
def list(self, request, *args, **kwargs):
#comment this line
user_type = self.request.user.user_type
company = self.request.user.department.company.code
department = self.request.user.department.code
......
......@@ -33,16 +33,14 @@ class UserManagementRetreiveSerializer(serializers.ModelSerializer):
applications = serializers.SerializerMethodField()
department = serializers.SerializerMethodField()
company = serializers.SerializerMethodField()
create_form = serializers.SerializerMethodField()
create_template = serializers.SerializerMethodField()
cms_privilege = serializers.SerializerMethodField()
my_successions = serializers.SerializerMethodField()
class Meta:
model = User
fields = (
'id',
'create_form',
'create_template',
'cms_privilege',
'code', 'name',
'username', 'contact_no',
'image', 'company',
......@@ -86,27 +84,38 @@ class UserManagementRetreiveSerializer(serializers.ModelSerializer):
}
return data
def get_create_form(self, user):
check_user = AllowedCompany.objects.filter(
def get_cms_privilege(self, user):
# test = AllowedCompany.objects.extra(
# select={
# 'create_form': "create_change_request=True",
# 'create_template': "create_change_request_template=True",
# }
# ).filter(id_number=user.code).values('create_form', "create_template")
create_form = AllowedCompany.objects.filter(
Q(id_number=user.code) &
Q(create_change_request=True)
).count()
if check_user <= 0:
permission = False
else:
permission = True
return permission
def get_create_template(self, user):
check_user = AllowedCompany.objects.filter(
create_template = AllowedCompany.objects.filter(
Q(id_number=user.code) &
Q(create_change_request_template=True)
).count()
if check_user <= 0:
permission = False
else:
permission = True
return permission
if create_form >= 1:
create_form = 1
if create_template >= 1:
create_template = 1
return {
"create_form": create_form,
"create_template": create_template
}
def get_image(self, user):
request = self.context.get('request')
......
......@@ -4,17 +4,36 @@ from rest_framework.response import Response
from functools import wraps
from app.entities import enums
from app.entities.models import EntityLog, Notification
from django.conf import settings
from websocket import create_connection
import json
from rest_framework import status
from rest_framework import serializers
import copy
import json
from pusher import Pusher
import os
import configparser
config = configparser.ConfigParser()
config_file = os.path.join('./', 'env.ini')
config.read(config_file)
REALTIMESERVER_IP = settings.REALTIMESERVER_IP
SSL = False if config['SETTINGS']['SSL'] == 1 else True
def rms_websocket(my_channel, my_event, msg):
pusher_client = pusher.Pusher(
app_id='957253',
key='c29a7f6579108991e79e',
secret='b3df5d55196b5fbd3eff',
cluster='ap1',
ssl=True
)
pusher_client.trigger(
my_channel, my_event, msg
)
def error_message(code, message, status, status_code):
......@@ -207,13 +226,20 @@ def notification_create(form_code, message, account_no,
)
ROOM = account_no
SENDER = sender_account_no
send_broadcast_message(
ROOM,
SENDER,
'NEW NOTIFICATIONS'
)
# SENDER = sender_account_no
if SSL != True:
send_broadcast_message(
ROOM,
SENDER,
'NEW NOTIFICATIONS'
)
else:
rms_websocket(
ROOM,
'cms-notification',
{'message': 'NEW NOTIFICATIONS'}
)
return True
......
......@@ -218,3 +218,25 @@ def validation_vendor_unique_level(approvers):
if not approver['delegation'] == 'DELEGATION-20191119-0000002':
validate = approver['level']
return validate
def list_by_dept_privilege(user_id_number):
try:
priviledgeCrs = models.AllowedCompany.objects.filter(
Q(id_number=user_id_number) &
Q(view_all_change_request_template=True)
).values('group_pivots')
return_queryset = models.ChangeRequestTemplateHeader.objects.filter(
Q(is_active=True) &
(Q(created_by_user=user_id_number) |
Q(created_by_department__in=priviledgeCrs))
)
return return_queryset
except Exception as e:
return_queryset = None
return return_queryset
# Generated by Django 2.2 on 2020-02-27 17:46
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('entities', '0002_auto_20200219_1525'),
]
operations = [
migrations.AddField(
model_name='allowedcompany',
name='view_all_change_request_template',
field=models.BooleanField(default=True),
),
]
......@@ -1110,9 +1110,11 @@ class AllowedCompany(models.Model):
create_change_request_template = models.BooleanField(default=True)
view_all_change_request = models.BooleanField(default=True)
approve_cr = models.BooleanField(default=False)
view_all_change_request_template = models.BooleanField(default=True)
created_at = models.DateTimeField(auto_now_add=True)
deleted_at = models.DateTimeField(null=True, blank=True)
class Meta:
db_table = 'allowed_company'
unique_together = ['company_pivot', 'group_pivots', 'id_number']
......
......@@ -27,7 +27,6 @@ SECRET_KEY = 'w!dkk7gc*dk#4!6ow3s1wc32%_yp$=osgybm=n0vw6k1j^sqo&'
# SECURITY WARNING: don't run with debug turned on in production!
ALLOWED_HOSTS = ['*']
CORS_ORIGIN_ALLOW_ALL = True
......
......@@ -5,7 +5,7 @@ DATABASE_ENGINE = django.db.backends.mysql
DATABASE_NAME = rms_db
DATABASE_USER = red_database
DATABASE_PASSWORD = password123
DATABASE_HOST = 10.0.75.1
DATABASE_HOST = localhost
DATABASE_PORT = 3306
SESSION_TIMEOUT = 30
FRONT_END_URL = http://devweb.rmsv2.oneberrysystem.com
......@@ -15,6 +15,12 @@ CATCH_EMAIL = gladys@tirsolutions.com
CR_LINK = http://localhost:8000/cms/change-request/form/view
REALTIMESERVER_IP = 127.0.0.1:8000
DEBUG = False
app_id = 957253
key = c29a7f6579108991e79e
secret = b3df5d55196b5fbd3eff
cluster = api
cms_notification = cms_notification
[NOTIFICATION_EMAIL]
......
......@@ -78,3 +78,5 @@ VENDOR_REJECT_MESSAGE = has REJECTED the change request;RMS-CRREJECTED-VENDOR
REVISED_MESSAGE = has REJECTED the change request for your revision;RMS-CRREVISED
CANCEL_MESSAGE = has CANCELLED the change request;RMS-CRCANCELLED-USERTRIGGER
APPROVER_REJECT_MESSAGE = has REJECTED the change request for your approval;RMS-CRREJECTED-APPROVER
This diff is collapsed.
......@@ -15,7 +15,7 @@ channels-redis==2.4.0
chardet==3.0.4
colorama==0.4.1
constantly==15.1.0
cryptography==2.7
cryptography==2.8
cssselect2==0.2.2
daphne==2.3.0
defusedxml==0.6.0
......@@ -40,15 +40,20 @@ Markdown==3.1
mccabe==0.6.1
msgpack==0.6.1
mysqlclient==1.4.2.post1
ndg-httpsclient==0.5.1
numpy==1.17.3
openpyxl==3.0.0
pandas==0.25.3
pep8==1.7.1
Pillow==6.0.0
pusher==2.1.4
pyasn1==0.4.8
pycodestyle==2.5.0
pycparser==2.19
PyHamcrest==1.9.0
pylint==2.3.1
PyNaCl==1.3.0
pyOpenSSL==19.1.0
PyPDF2==1.26.0
Pyphen==0.9.5
python-dateutil==2.8.1
......
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