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