Commit 06029801 authored by Gladys Forte's avatar Gladys Forte

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

parents 5f4a3c74 8a225b9a
......@@ -83,7 +83,7 @@ class RefreshToken(APIView):
class CurrentUser(APIView):
@decorators.error_safe
# @decorators.error_safe
def get(self, request, token=None, *args, **kwargs):
serializer = UserManagementRetreiveSerializer
......
......@@ -29,8 +29,10 @@ from rest_framework.generics import GenericAPIView
from rest_framework.mixins import UpdateModelMixin
from django.forms.models import model_to_dict
from app.entities import enums, models
from django.db.models import Q
from app.applicationlayer.management.account.serializer import ChangeRequestList
from app.applicationlayer.utils import log_save
class UserList(APIView):
......@@ -41,8 +43,13 @@ class UserList(APIView):
try:
serializer = ChangeRequestList
dept = self.request.query_params['department_id']
queryset = models.User.objects.filter(department=dept).order_by('name')
dept = self.request.query_params['department_code']
company = self.request.query_params['company_code']
user_list = models.AllowedCompany.objects.filter(
Q(company_pivot=company) &
Q(group_pivots=dept)
).values('id_number')
queryset = models.User.objects.filter(code__in=user_list).order_by('name')
page = self.paginate_queryset(queryset)
......@@ -114,16 +121,75 @@ class ChangeRequestTemplatesViewset(meviewsets.ModelViewSet):
return Response(serializer.data)
def destroy(self, request, *args, **kwargs):
try:
# try:
template_no = self.kwargs['template_no']
instance = models.ChangeRequestTemplateHeader.objects.filter(
Q(template_no=template_no) &
Q(archived_at=None)
).update(archived_at=datetime.now())
approver = models.ChangeRequestTemplateApprovers.objects.filter(
template_no=template_no
)
log_save(
enums.LogEnum.DELETED.value,
enums.LogEntitiesEnum.ChangeRequestTemplateApprovers.value,
approver.values()[0]['id'],
approver.values()[0],
''
)
approver.delete()
stake = models.ChangeRequestTemplateStakeHolders.objects.filter(
template_no=template_no
)
log_save(
enums.LogEnum.DELETED.value,
enums.LogEntitiesEnum.ChangeRequestTemplateStakeHolders.value,
stake.first()['id'],
stake.values().first(),
''
)
stake.delete()
attachment = models.ChangeRequestTemplateAttachments.objects.filter(
template_no=template_no
)
log_save(
enums.LogEnum.DELETED.value,
enums.LogEntitiesEnum.ChangeRequestTemplateAttachments.value,
attachment.first()['id'],
attachment.values().first(),
''
)
attachment.delete()
details = models.ChangeRequestTemplateDetails.objects.filter(
template_no=template_no
)
log_save(
enums.LogEnum.DELETED.value,
enums.LogEntitiesEnum.ChangeRequestTemplateHeader.value,
details.first()['id'],
details.values().first(),
''
)
details.delete()
header = models.ChangeRequestTemplateHeader.objects.filter(
template_no=template_no
)
log_save(
enums.LogEnum.DELETED.value,
enums.LogEntitiesEnum.ChangeRequestTemplateHeader.value,
header.first()['id'],
header.values().first(),
''
)
header.delete()
return Response({"message": "Deleted"}, status=status.HTTP_200_OK)
except Exception as e:
return Response(e,
status=status.HTTP_500_INTERNAL_SERVER_ERROR)
# except Exception as e:
# return Response(e,
# status=status.HTTP_500_INTERNAL_SERVER_ERROR)
@transaction.atomic
def partial_update(self, request, *args, **kwargs):
......
......@@ -3,14 +3,26 @@ from app.entities.models import Module, Application
# from app.applicationlayer.management.application import ApplicationSerializer
class SubModuleField(serializers.Field):
def to_representation(self, value):
list_sub_module = Module.objects.filter(
parent=value.id
).values().order_by('sort_id')
return list_sub_module
class ModuleSerializer(serializers.ModelSerializer):
sub_module = SubModuleField(source='*', read_only=True)
def to_representation(self, instance):
application_name = Application.objects.filter(
id=instance.application.id
).values().first()
ret = super().to_representation(instance)
ret['application'] = application_name
# ret['application'] = application_name
return ret
......
......@@ -2,6 +2,8 @@ from rest_framework import serializers
from app.applicationlayer import serializers as app_serializers
from app.entities import models
from django.db.models import Q
from app.applicationlayer.management.module.serializer import ModuleSerializer
from app.entities import enums
# Used for Create and Update
......@@ -82,40 +84,40 @@ class UserManagementRetreiveSerializer(serializers.ModelSerializer):
return request.build_absolute_uri('/media/no-user.png')
def get_applications(self, user):
app = user.application.all()
# app = user.application.exclude(id=1)
if user.user_type.upper() == enums.UserTypeEnum.USER.value:
app = user.application.exclude(id=1)
else:
app = user.application.all()
list_app = []
initial_mod = {}
rms = models.Application.objects.filter(id=1).values().first()
for data in app:
if user.user_type.upper() == 'USR' and data.id == 1:
pass
# elif user.user_type.upper() == 'OUA' and data.id == 1:
# remove = ['Modules', 'Companies', 'Application']
# elif user.user_type.upper() == 'CUA' and data.id == 1:
# remove = ['Modules', 'Companies', 'Application']
# print(user.user_type.upper())
# print(data.id)
if data.id == 1:
if user.user_type.upper() == enums.UserTypeEnum.SUPER_USER.value:
rms_module = models.Module.objects.filter(
application=rms['code']
)
elif user.user_type.upper() != enums.UserTypeEnum.USER.value:
rms_module = models.Module.objects.filter(
code="MODULE-20190919-0000006"
)
# else:
# rms_module= ''
else:
# remove = ['Module Management', 'Application Management', 'Department Management', 'Company Management', "User Management"]
if user.user_type == 'SU':
mod = data.modules.all().values()
# remove = []
# elif user.user_type == 'OUA':
# remove.remove("Company Management")
# remove.remove("Department Management")
# remove.remove("User Management")
# elif user.user_type == 'CUA':
# remove.remove("Department Management")
# remove.remove("User Management")
# elif user.user_type == 'DUA':
# remove.remove("User Management")
else:
mod = data.modules.filter(name="User Management").values()
# mod = data.modules.exclude(name__in=remove).values()
mod = mod.order_by('parent', 'sort_id')
app_body = {}
app_body['app_code'] = data.code
app_body['name'] = data.name
app_body['modules'] = mod
list_app.append(app_body)
rms_module = data.modules.all()
# mod = mod.order_by('parent', 'sort_id')
mod = ModuleSerializer(data=rms_module, many=True)
mod.is_valid()
app_body = {}
app_body['app_code'] = data.code
app_body['name'] = data.name
app_body['modules'] = mod.data
list_app.append(app_body)
return list_app
......
......@@ -13,7 +13,7 @@ from rest_framework import status
REALTIMESERVER_IP = settings.REALTIMESERVER_IP
class CustomPagination(PageNumberPagination):
page_size = 5
page_size = 10
max_page_size = 50
page_query_param = 'page'
page_size_query_param = 'page_size'
......
......@@ -61,6 +61,11 @@ class LogEntitiesEnum(Enum):
COMPANY = "COMPANY"
DEPARTMENT = "DEPARTMENT"
MODULE = "MODULE"
ChangeRequestTemplateHeader = "ChangeRequestTemplateHeader"
ChangeRequestTemplateApprovers = "ChangeRequestTemplateApprovers"
ChangeRequestTemplateStakeHolders = "ChangeRequestTemplateStakeHolders"
ChangeRequestTemplateAttachments = "ChangeRequestTemplateAttachments"
ChangeRequestTemplateDetails = "ChangeRequestTemplateDetails"
# BRAND = "Brand"
# CATEGORY = "Category"
......
......@@ -166,6 +166,8 @@ class rms:
self.queryset = self.queryset.filter(
id=id
)
elif rms.user_type(self) == rms.enums_OUA:
pass
elif rms.user_type(self) == rms.enums_company:
pass
elif rms.user_type(self) == rms.enums_super:
......@@ -198,6 +200,8 @@ class rms:
)
elif rms.user_type(self) == rms.enums_super:
pass
elif rms.user_type(self) == rms.enums_OUA:
pass
else:
raise ParseError(
rms.access_error
......
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