Commit aabad658 authored by Gladys Forte's avatar Gladys Forte

Merge branch 'product-staging' into 'product-demo'

Product staging

See merge request rms/Backend/api-main-service!952
parents d34a3521 63ef0f05
......@@ -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
......
......@@ -34,12 +34,13 @@ class UserManagementRetreiveSerializer(serializers.ModelSerializer):
department = serializers.SerializerMethodField()
company = serializers.SerializerMethodField()
cms_privilege = serializers.SerializerMethodField()
my_successions = serializers.SerializerMethodField()
class Meta:
model = User
fields = (
'id',
"cms_privilege",
'cms_privilege',
'code', 'name',
'username', 'contact_no',
'image', 'company',
......@@ -85,21 +86,36 @@ class UserManagementRetreiveSerializer(serializers.ModelSerializer):
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")
# print(test.count())
# 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()
create_template = AllowedCompany.objects.filter(
Q(id_number=user.code) &
Q(create_change_request_template=True)
).count()
if create_form >= 1:
create_form = 1
if create_template >= 1:
create_template = 1
return {
"create_form": create_form,
"create_template": create_template
}
if test.count() >= 1:
return {**test.values("create_form","create_template")[0]}
else:
return {
"create_form": False,
"create_template": False
}
def get_image(self, user):
request = self.context.get('request')
......
......@@ -4,46 +4,35 @@ 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
import pusher
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
app_id = config['SETTINGS']['app_id'],
key = config['SETTINGS']['key']
secret = config['SETTINGS']['secret']
cluster = config['SETTINGS']['cluster']
ssl = True if config['SETTINGS']['ssl'] == 1 else False
cms_notification = config['SETTINGS']['cms_notification']
SSL = False if config['SETTINGS']['SSL'] == 1 else True
def rms_websocket(my_channel, my_event, msg):
pusher_client = pusher.Pusher(
app_id=app_id,
key=key,
secret=secret,
cluster=cluster,
ssl=ssl
app_id='957253',
key='c29a7f6579108991e79e',
secret='b3df5d55196b5fbd3eff',
cluster='ap1',
ssl=True
)
pusher_client.trigger(
my_channel, my_event, msg
# 'my-channel', 'my-event', {'message': 'hello world'}
)
......@@ -238,14 +227,8 @@ def notification_create(form_code, message, account_no,
ROOM = account_no
# SENDER = sender_account_no
# send_broadcast_message(
# ROOM,
# SENDER,
# 'NEW NOTIFICATIONS'
# )
if ssl != 1:
if SSL != True:
send_broadcast_message(
ROOM,
SENDER,
......@@ -254,7 +237,8 @@ def notification_create(form_code, message, account_no,
else:
rms_websocket(
ROOM,
'NEW NOTIFICATIONS'
'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
......
This diff is collapsed.
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